我使用C#windows窗体创建应用程序,它使用本地SQL Server数据库服务器来使用此连接字符串存储/读取数据:
SqlConnection cn = new SqlConnection("Data Source=localhost;Initial Catalog=mydb;Integrated Security=True");
之后我创建了一个安装文件(exe),然后我在同一台PC上安装了安装文件,应用程序运行良好,可以从SQL Server数据库中读取数据.
现在问题出现了,当我去另一台PC安装了SQL Server,我手动连接了同一个数据库(mydb)并安装了我的应用程序,但它无法正常工作.错误显示在屏幕截图中:
我在另一台PC上有不同的SQL Server名称,但我在连接字符串中指定SQL Server是Localhost,所以我不知道为什么它不起作用.请帮我解决这个错误.谢谢
确保将Sql Server设置为允许Tcp/Ip连接,并将其设置为允许集成安全登录.然后,确保该计算机上的用户被授予对数据库的正确访问权限.如果您希望能够分发此应用程序并使其"正常工作",那么在此处使用Sql身份验证可能会更好.
最后,如果这里的Sql Server是一个典型的本地桌面应用程序的简单数据存储区,那么它可能有点过分.完整的Sql Server(包括Express Edition)是一个服务器引擎.当它是机器上运行的唯一东西并且可以耗尽机器上的所有资源以便缓存数据和处理来自许多远程机器的请求时,它工作得最好.如果您只想要一个典型桌面应用程序的本地数据存储,那么像Sql Server LocalDb,Sql Server Compact Edition,Sqlite甚至MS Access这样的进程内引擎将是一个更合适的选择.