C# 如何在未安装Sql Server的计算机上运行带有Sql Server数据库的桌面应用程序

C# 如何在未安装Sql Server的计算机上运行带有Sql Server数据库的桌面应用程序,c#,sql,sql-server,visual-studio,connection-string,C#,Sql,Sql Server,Visual Studio,Connection String,我已经使用VisualStudio2010和SQLServer2008完成了一个桌面应用程序。 它在我的机器上运行得很好(我有一台SQLServer2008和2005)。 数据库是本地的,不可更改, 我希望此应用程序在未安装SQL Server的计算机上成功运行 我的连接字符串是: Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\KBank.mdf;Integrated Security=True;User Instance=T

我已经使用VisualStudio2010和SQLServer2008完成了一个桌面应用程序。 它在我的机器上运行得很好(我有一台SQLServer2008和2005)。 数据库是本地的,不可更改, 我希望此应用程序在未安装SQL Server的计算机上成功运行

我的连接字符串是:

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

我想知道最好最简单的方法。谢谢

最简单的方法是为应用程序创建一个将SQL Server 2008作为先决条件的设置。就这样


要获得进一步帮助,您必须提供更多信息,说明如何在应用程序中使用数据库,以及是否有方法托管应用程序将连接到的公共sql server实例。

如果数据库是“本地且不可更改的”如何?这样,如果您使用的是
AttachDbFilename=|DataDirectory | \KBank.mdf;,您的客户端就不需要安装完整的sql server实例;User Instance=True
方法,则您别无选择,只能在该/每台应该使用您的应用程序的计算机上本地安装SQL ServerExpress(并且没有其他版本!)

在我看来,这种方法存在严重缺陷,限制了您的灵活性


我建议使用真正的服务器方法:将数据库放在服务器上(无论是在开发环境中还是在生产环境中),然后您就可以灵活地在每个用户的机器上都有一个SQL server实例(如果有意义的话),或者您可以有一个集中的服务器,客户端只连接到该服务器(未安装本地数据库服务器)。

我同意Nick的看法。如果您不想在计算机上安装SQL server,则SQL server compact edition将是一种选择。语法与SQL server非常相似,但有一些限制。例如,compact edition中不能有存储过程,而且只能有几个存储过程


您可能希望作为开发资源访问。

我认为这将是一个良好且灵活的解决方案,因此如果您给我一些Compact edition资源,我将不胜感激。这是免费的,您可以到Hello Nick处获取,我已经尝试过了,我需要在用户机器上使用SQL Server Compact,我的连接字符串是Data Source=| DataDirectory|\KBank.sdf;Encrypt Database=True;Password=knowledgebank;File Mode=shared read;Persist Security Info=False,这是我的查询da=new SqlCeDataAdapter(“从信息中选择信息id,信息文本,cat id”+cat,a.GetConnectionStringByName());SqlCeCommandBuilder br=new SqlCeCommandBuilder(da);ds=new DataSet();da.Fill(ds,“em”);Fill_Rb();它在我的电脑上工作,在其他机器上不工作。如果可能的话,请发布一些关于您建议的资源。Thanks@Hassan:嗯,这只是“正常”使用SQL Server的方式-很难说什么样的链接会有用-可能是一个起点。只需避免处理“用户实例”的一切或者
AttachDbFileName=
…将您的数据库放在服务器上,并使用服务器上数据库的逻辑名称从客户端与之通信-您不必乱动磁盘上的文件或诸如此类的东西…谢谢,我使用了SQL server Express Edition,然后使用了SQL Compact Edition,然后使用了OLE MS-ACCESS数据库o使应用程序在不需要第三方组件的情况下运行…但每次>>它都需要一台服务器,因此我使用了SQLite版本3..并且问题解决了我在尝试加密SQLite时遇到了一些问题,但我使用了一种我探索过的特殊加密方式解决了它:D