¿Cómo conecto una base de datos sql server a un proyecto en C#, para que me funcione para todas las computadoras?

publicado por: Anonymous

Tengo un problema con este tipo de proyectos, puedo crear un proyecto pero al momento de correr mi programa en otra computadora me marca error, debido a la cadena de conexión (Bueno no entiendo mucho el tema).

¿Cómo son los pasos para que no me genere este tipo de errores?

solución

Te tengo un buen link (En ingles) que podría ayudarte a lo que necesitas, como sugerencia te digo que pruebes SQL Server CE, pero para lo que buscas, sería bueno un dynamic attach o lo que Leandro sugiere en su respuesta.

Aunque aquí te dejo un ejemplo de como hacerlo con SQL Server CE (Link a la pregunta de SO):

Primero que nada, instala SQL Server CE (Si no lo tienes instalado), luego sigue estos pasos y prueba tu aplicación:

  1. Crea un nuevo proyecto.

  2. Agrega una referencia a System.Data.SqlServerCe (en Program FilesMicrosoft SQL Server Compact Editionv3.5DesktopSystem.Data.SqlServerCe.dll en mi pc)

  3. Click derecho al proyecto en el explorador de soluciones, selecciona “Añadir => Nuevo elemento…”, escoge “Base de datos Local” y llamala como desees, ejemplo MyDB.

  4. Se va a crear un nuevo archivo (MyDB.sdf) dentro del proyecto (Una DB de SQL Server CE)

  5. Click derecho a la base de datos y abrela, se abrirá la base de datos en el “Server Explorer”.

  6. En el “Server Explorer” crea una nueva tabla en la base de datos (en ejemplo: MyDB), agrega algunas tablas y datos.

Y luego prueba algo parecido a este codigo (recuerda siempre llamar a la directiva using):

using System.Data.SqlServerCe;

class Program
{
    static void Main(string[] args)
    {
        using (var cn = new SqlCeConnection("Data Source=MyDB.sdf"))
        {
            cn.Open();
            using (var cmd = cn.CreateCommand())
            {
                cmd.CommandText = "select * from MyTable where Field2 like '%AB%'";
                using (var reader = cmd.ExecuteReader())
                {
                    while (reader.Read())
                    {
                        Console.WriteLine("Field1: {0}", reader[0]);
                    }
                }
            }
        }
        Console.ReadKey();
    }
}

Debería de funcionar en todas partes con eso, saludos!

Respondido por: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *