Proyecto Simple en c# con conexión a SQL

Publicado en 'Programación' por jamfmen, 29 Feb 2016.





  1. jamfmen

    jamfmen Miembro frecuente

    Registro:
    23 Feb 2016
    Mensajes:
    240
    Likes:
    22




    Hola amigos, existirá un alma caritativa que pueda compartirme un proyecto simple, tal vez de mantenimiento, elaborado en C# y que tenga conexión a una BD SQL. Se lo agradecería eternamente.

    Saludos!!!

    Visual studio 2012 - 2013
    SQL actual
     
    A christiandg06 le gustó este mensaje.


  2. Raigen

    Raigen Miembro de bronce

    Registro:
    13 Jul 2015
    Mensajes:
    1,126
    Likes:
    149
    Tan difícil es buscar.
    Revisa esto
     
  3. christiandg06

    christiandg06 Miembro maestro

    Registro:
    2 Dic 2015
    Mensajes:
    725
    Likes:
    123
    yo tengo proyectos en visual 2010 c# con sql, algunos examenes o practicas calificadas de IDAT...

    conexión:
    public static SqlConnection cnx = new SqlConnection("Data Source=("ip");Initial Catalog="nombreBD";Integrated Security=True");
     
  4. jamfmen

    jamfmen Miembro frecuente

    Registro:
    23 Feb 2016
    Mensajes:
    240
    Likes:
    22
    Hola, te agradecería mucho si me compartieras un proyecto como el que menciono. Lo necesito para guiarme en las conexiónes a la BD. Muchas gracias. jamfmen @gmail.com
     
  5. jamfmen

    jamfmen Miembro frecuente

    Registro:
    23 Feb 2016
    Mensajes:
    240
    Likes:
    22
    Una consulta, estoy tratando de hacer una conexión a la BD pero me sale este error:

    [​IMG]

    Ya verifique este aperturado para hacer conexiones externas desde sql y te paso el código que estoy poniendo en mi código, espero puedas apoyarme. Muchas gracias.

    la base de datos se llama Veterinaria

    [​IMG]
    [​IMG]
     
  6. christiandg06

    christiandg06 Miembro maestro

    Registro:
    2 Dic 2015
    Mensajes:
    725
    Likes:
    123
    En el datasource va la ip de tu servidor o si en caso es local pon "local" o solo un punto "." sin comillas
     
  7. n00b

    n00b Miembro frecuente

    Registro:
    12 Dic 2015
    Mensajes:
    134
    Likes:
    48
    1- Corre este script en tu servidor SQL: (según veo estás usando windows authentication)

    PHP:
    CREATE DATABASE [TESTDB]
    GO

    USE [TESTDB]
    GO

    CREATE TABLE Item
    (
        
    Id INT IDENTITY(1,1NOT NULL,
        
    Name NVARCHAR(120NOT NULL,
        
    LastName NVARCHAR(120NOT NULL,
        [
    AddressNVARCHAR(250)
    )
    GO
    ALTER TABLE Item ADD CONSTRAINT PK_Item_Id PRIMARY KEY
    (Id)
    GO

    CREATE PROCEDURE sp_GetItemById
    (
        @
    ItemId INT
    )
    AS
    BEGIN
        SELECT Id
    NameLastName, [AddressFROM Item WHERE Id = @ItemId
    END
    GO
    2- Crea un proyecto de consola reemplaza el contenido de Program.cs con lo sigte:
    PHP:
    using System;
    using System.Configuration;
    using System.Data;
    using System.Data.SqlClient;

    namespace 
    PruebaDB
    {
      class 
    Program
      
    {
      static 
    void Main(string[] args)
      {
      var 
    arrayIds = new int[] { 12345678910 };

      
    Console.WriteLine("============== INSERTANDO REGISTROS EN LA BD =============");


      
    string name "John {0}"lastname "Doe {0}"address "Dirección {0}.";
      foreach (var 
    id in arrayIds)
      {
      var 
    item = new Item()
      {
      
    Name string.Format(nameid),
      
    LastName string.Format(lastnameid),
      
    Address = (id%2) > string.Format(address,id):null
      
    };
      
    AddItem(item);
      }
      
    Console.WriteLine("...Listo.");


      
    Console.WriteLine("\n============== LEYENDO DATOS DE LA BD =============");

      foreach (var 
    id in arrayIds)
      {
      var 
    item GetItemById(id);
      if(
    item != null)
      {
      
    Console.WriteLine("Id:{0} | Name: {1} | LastName: {2} | Address:{3}",
      
    item.Iditem.Nameitem.LastNameitem.Address);
      }

      }
      
    Console.WriteLine("...Listo.");
      
    Console.WriteLine("\n============= Limpiando Tabla (truncate) =============");

      
    TruncateTable();

      
    Console.WriteLine("...Listo.");


      
    Console.ReadKey();
      }

      private static 
    void AddItem(Item item)
      {
      if (
    item == null) throw new ArgumentNullException("item");

      try
      {
      var 
    connString ConfigurationManager.ConnectionStrings["TESTDBConnection"].ConnectionString;
      var 
    sqlCommand "INSERT INTO Item(Name, LastName, Address) VALUES(@Name, @LastName, @Address)";

      
    using (var connection = new SqlConnection(connString))
      {
      
    using (var command = new SqlCommand(sqlCommandconnection))
      {
      
    command.Parameters.Add("@Name"SqlDbType.NVarChar).Value item.Name;
      
    command.Parameters.Add("@LastName"SqlDbType.NVarChar).Value item.LastName;
      if(
    string.IsNullOrEmpty(item.Address))
      
    command.Parameters.Add("@Address"SqlDbType.NVarChar).Value DBNull.Value;
      else
      
    command.Parameters.Add("@Address"SqlDbType.NVarChar).Value item.Address;

      
    connection.Open();
      
    command.ExecuteNonQuery();
      }
      }

      }
      catch
      {
      throw;
      }
      }

      
    //EJECUTANDO A UN STORE PROCEDURE
      
    private static Item GetItemById(int itemId)
      {
      try
      {
      
    Item retrievedItem null;

      var 
    connString ConfigurationManager.ConnectionStrings["TESTDBConnection"].ConnectionString;
      var 
    sqlCommand "sp_GetItemById";

      
    using (var connection = new SqlConnection(connString))
      {
      
    using (var command = new SqlCommand(sqlCommandconnection))
      {
      
    command.CommandType CommandType.StoredProcedure;
      
    command.Parameters.Add("@ItemId"SqlDbType.Int).Value itemId;

      
    connection.Open();
      var 
    reader command.ExecuteReader();

      if (!
    reader.HasRows)
      return 
    retrievedItem;
      else
      
    retrievedItem = new Item();

      while (
    reader.Read())
      {
      
    retrievedItem.Id Convert.ToInt32(reader["Id"]);
      
    retrievedItem.Name reader["Name"] as string;
      
    retrievedItem.LastName reader["LastName"] as string;
      
    retrievedItem.Address reader["Address"] as string;
      }
      return 
    retrievedItem;
      }
      }

      }
      catch
      {
      throw;
      }
      }


      private static 
    void TruncateTable()
      {
      try
      {
      var 
    connString ConfigurationManager.ConnectionStrings["TESTDBConnection"].ConnectionString;
      var 
    sqlCommand "TRUNCATE TABLE Item";

      
    using (var connection = new SqlConnection(connString))
      {
      
    using (var command = new SqlCommand(sqlCommandconnection))
      {
      
    connection.Open();
      
    command.ExecuteNonQuery();
      }
      }

      }
      catch
      {
      throw;
      }
      }
      }
    //program.cs

      
    public class Item
      
    {
      public 
    int Id getset; }
      public 
    string Name getset; }
      public 
    string LastName getset; }
      public 
    string Address getset; }

      }
    }

    3- A tu proyecto agrega un nuevo item, un archivo de configuración (el App.config,SOLO SI NO LO TIENES, es posible que ya lo tengas). En este archivo de configuración borra todoy copia y pega lo siguiente:
    PHP:
    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
      <startup>
      <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
      </startup>
      <connectionStrings>
      <add name="TESTDBConnection" connectionString="Server=.\SQLEXPRESS;Database=TESTDB;Trusted_Connection=Yes;"/>
      </connectionStrings>
    </configuration>
    4- Ejecuta el programa.

    Aquí se ve más claro:
    1, 2, 3.
    nota: en el último dice SQLEXPRESS2, en tu caso elimina el 2.
     
    A jamfmen le gustó este mensaje.
  8. jamfmen

    jamfmen Miembro frecuente

    Registro:
    23 Feb 2016
    Mensajes:
    240
    Likes:
    22
    Reinstale el SQL y me sirvió colocando (local) y por windows autentication. Al parecer el motor de Base de datos estaba mal configurado. Tantas horas probando y una simple re-instalación solucionó el problema :'v.


    Muchas gracias a todos amigos!
     
    A christiandg06 le gustó este mensaje.