Cómo ejecutar una aplicación de escritorio con su base de datos Sql Server en una máquina que no tiene instalado el servidor SQL

Ya terminé una aplicación de escritorio con Visual Studio 2010 y SQL Server 2008. Funciona perfectamente en mi máquina (tengo SQL Server 2008 y 2005). la base de datos es local e inmutable, quiero que esta aplicación se ejecute correctamente en la máquina que no tiene instalado SQL Server.

mi cadena de conexión es:

Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\KBank.mdf;Integrated Security=True;User Instance=True;Connection Timeout=300

Quiero saber la mejor y más sencilla manera de hacerlo. Gracias

preguntado el 25 de agosto de 12 a las 08:08

4 Respuestas

La forma más sencilla sería crear una configuración para su aplicación que establezca SQL Server 2008 como requisito previo. Eso es todo.

Para obtener más ayuda, deberá proporcionar más información sobre cómo usa la base de datos en su aplicación y si tiene una forma de alojar una instancia de servidor sql público a la que se conectará su aplicación.

Respondido 25 ago 12, 08:08

Si está usando el AttachDbFilename=|DataDirectory|\KBank.mdf;User Instance=True enfoque, entonces no tiene más remedio que instalar SQL Server Express (¡y ninguna otra edición!) localmente en esa / cada máquina que se supone que debe usar su aplicación.

En mi opinión, este enfoque tiene graves fallas y limita su flexibilidad.

Lo que sugiero es usar el reales enfoque de servidor: coloque su base de datos en un servidor (tanto en su entorno de desarrollo como en producción) y luego tendrá la flexibilidad de tener una instancia de SQL Server en la máquina de cada usuario (si eso tiene sentido), o puede tener un servidor centralizado. servidor al que solo se conectan los clientes (sin servidor de base de datos local instalado).

Respondido 25 ago 12, 09:08

por favor publique algunos recursos sobre su sugerencia si es posible. Gracias - hassanación

@Hassan: bueno, esa es solo la forma "normal" de trabajar con SQL Server; es difícil decir qué tipo de enlaces serían útiles, posiblemente SQL Server Developer Central EN MSDN como punto de partida. Simplemente evite todo lo que tenga que ver con "instancia de usuario" o AttachDbFileName= ... pon tu base de datos en el servidor, y hable con él desde el cliente utilizando el nombre lógico de la base de datos en el servidor; no tiene que perder el tiempo con los archivos en el disco ni nada por el estilo... - marc_s

Si la base de datos es "local e inmutable" Qué hay de la edición compacta? De esa manera, sus clientes no necesitan instalar una instancia de servidor sql completo

Respondido 25 ago 12, 08:08

Creo que será una solución buena y flexible, por lo que le agradecería que me diera algunos recursos de edición compacta: hassanación

Es gratis, solo ve y tómalo en microsoft.com/en-us/download/detalles.aspx?id=17876 - Nick

Hola Nick, lo probé y necesitaba un SQL Server compacto en las máquinas de los usuarios, mi cadena de conexión es Data Source=|DataDirectory|\KBank.sdf;Encrypt Database=True;Password=knowledgebank;File Mode=shared read;Persist Security Info=False y esta es mi consulta da = new SqlCeDataAdapter("select info_id,info_text,cat_id from info " + cat, a.GetConnectionStringByName()); SqlCeCommandBuilder br = nuevo SqlCeCommandBuilder(da); ds = nuevo conjunto de datos (); da.Fill(ds, "em"); Llenar_Rb(); funcionó en mi PC y no funcionó en las otras máquinas - hassanación

Estoy de acuerdo con Nick. Si no desea instalar SQL Server en la máquina, la edición compacta de SQL Server sería una de las opciones. La sintaxis es bastante similar a SQL Server pero tiene limitaciones. como no puede tener procedimientos almacenados en edición compacta y algunos más.

Es posible que desee visitar Tutorial de SQL CE como recurso de desarrollo.

Respondido 30 ago 12, 22:08

gracias, he usado SQL Server Express Edition, luego usé SQL Compact Edition y luego usé la base de datos OLE MS-ACCESS tratando de hacer que la aplicación se ejecute sin necesidad de un componente de terceros... pero necesita un servidor cada vez>> Así que he usado una versión 3 de SQLite ... y el problema se resolvió - hassanación

Enfrenté algunos problemas al intentar encriptar el SQLite, pero lo resolví con una forma de encriptación especial que he explorado: D - hassanación

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.