如何在另一台计算机上运行包含本地SQL Server数据库的C#应用程序?

如何在另一台计算机上运行包含本地SQL Server数据库的C#应用程序?,c#,sql-server,database,local,C#,Sql Server,Database,Local,我用SQL Server数据库创建了一个C#程序。它可以在我的电脑上正常工作,但在我朋友的电脑上却不行(我朋友没有SQL Server 2008)。是否可以在不安装任何设备的情况下进行安装?如果可以,怎么做 这是我的连接字符串: connectionString="Data Source=\v11.0;AttachDbFilename=|DataDirectory|\MainDatabase.mdf;Integrated Security=True" 据我所知,你有两个选择之一。你要么有一台服

我用SQL Server数据库创建了一个C#程序。它可以在我的电脑上正常工作,但在我朋友的电脑上却不行(我朋友没有SQL Server 2008)。是否可以在不安装任何设备的情况下进行安装?如果可以,怎么做

这是我的连接字符串:

connectionString="Data Source=\v11.0;AttachDbFilename=|DataDirectory|\MainDatabase.mdf;Integrated Security=True"

据我所知,你有两个选择之一。你要么有一台服务器(一台设置为服务器并包含此数据库的pc),要么你可以选择更简单的方法,将数据库托管在云端。许多网站提供免费服务,在有限的时间或有限的存储空间内托管您的数据库。如果您有Azure订阅,那么这肯定是一个不错的选择。

SQL Server适用于服务器数据库。您可以将项目更改为使用SQL Server CE(SQL Server Compact Edition),它是一个单文件本地数据库。它与“真正的”SQL Server非常相似,因此它可能是最简单的解决方案。除了连接字符串外,您的代码可能不会更改。

使用数据库所在的本地计算机的IP地址; 1433是默认端口号。然后相应地修改连接字符串:

connectionString="Data Source=190.190.200.100,1433;
Initial Catalog=myDataBase;User ID=myUsername;Password=myPassword;"

如果要在未安装SQL server的情况下运行程序,则必须使用基于服务的SQL数据库


您可以通过Visual Studio(项目-->添加新项)添加本地数据库。

第一次在防火墙中打开端口1433时,如果不需要,可以关闭防火墙。 转到Run=>cmd=>Ipconfig查找网络的卡活动。像

就像我的电脑只有无线网络一样,我的andress在私人局域网中的地址是:192.168.100.165 现在您可以在web.config中更改connectstring

connectionString="Data Source=192.168.100.165;
Initial Catalog=yourDataBase;User ID=yourUsername;Password=yourPassword;"
如果您不知道“您的用户名”和“您的密码”,请参阅链接 并在MsSQL中创建用户名和密码


如果你想从互联网连接数据库,你需要打开你的路由器

如果你需要朋友的计算机上的SQL数据库而不是你自己的主机,我的解决方案可以满足你的需要

使用适当的数据库在任何设备上本地处理数据库最便宜的方法是转换为SQLite。这是一种更轻量级的本地设备替代方案,不需要任何用户安装SQL server

还有一些替代方法,比如将信息写入隐藏文件(如果您不想让应用程序受到黑客攻击,通常是二进制文件)


简而言之,如果您正在托管数据库,只考虑SQL数据库,否则使用替代方案。

如果连接字符串类似于

connectionString="Data Source=\v11.0;AttachDbFilename=|DataDirectory|\MainDatabase.mdf;Integrated Security=True"
然后你应该在你朋友的电脑上安装
sqllocaldb 2012.msi

并确保.mdf文件的位置与您计算机上的位置相同。

可能重复您希望您的朋友能够访问您的数据库,还是该数据库是唯一的?如果是后者,请注意任何需要SQL的本地主机都需要SQL Server。使用替代方法,例如SQLite(用于用户输入信息)或资源文件(用于内部项)。如果是前者,你必须自己托管一台服务器。实际上我不想这样做,因为我希望有一天能卖掉这个程序,这样每个用户的电脑上都会有自己的数据库。你能告诉我一些关于本地数据库的信息吗?如果你是学生,你可以免费订阅Azure。或者,如果您有Dreamspark。为什么您需要每个用户的计算机上都有一个数据库?Petar Bechev,有一个Visual Studio(SQL Server Compact Toolbox)扩展,您可以从“工具”菜单安装。在那里创建一个数据库,并将其添加到项目中。然后在那里重新创建您的表,并更改应用程序的连接字符串以使用此新数据库。SQL CE是否已弃用/停止使用?@black是,但它仍在发挥作用。对于一个新项目,我认为最好使用SQLite作为本地数据库。将数据源更改为主机PC的IP地址,它应该需要安装基于workdoesnt服务的数据库?当您为发布版构建项目时,visual studio将数据库包含在其中。感谢亲爱的Raidri。