我正在Windows窗体(C#)中创建POS系统,在其中我使用SQL Server数据库文件(.mdf
)存储项目(完全脱机)。当我在计算机上安装该应用程序时,它可以正常工作,但是当我在客户端PC上安装该应用程序时,会发生错误:
(提供者:SQL网络接口,错误:52-无法找到本地数据库运行时安装”
我在某处读到该问题是由于客户端PC数据库的连接字符串不同而引起的。我尝试在运行时动态添加连接字符串,但再次只能在我的计算机上使用。
另一个可能导致此问题的原因是我使用了“基于服务器的数据库”,因为由于某些原因Visual Studio 2017中不提供本地数据库选项。
我查找的另一个解决方案指出,应该在客户端的PC上安装SQL Server Express。这也失败了(也许我必须以某种方式进行设置)。
我还尝试将database.mdf
和database_log
文件添加到安装文件夹中。
最后,我尝试安装第三方安装程序(VS 2015中的高级安装程序15.8和InstallShield向导),但也失败了。
(我提供了发生数据库连接的代码和连接字符串)
public void ConnectToDB()
{
DBConnection = new SqlConnection(@"Data Source = (LocalDB)\MSSQLLocalDB; AttachDbFilename=C:\Users\SAIM NASSER\Desktop\app layer\data layer\Database1.mdf; Integrated Security = True");
DBConnection.Open();
ResultSet = new DataSet();
}
答案 0 :(得分:1)
如果我理解的正确,您想使用LocalDB
这意味着使用Sql Server而不安装完整的sql服务器,而仅安装sql server express的localdb部分。
要使其正常工作,您需要安装LocalDB驱动程序,可在此处找到
https://www.microsoft.com/en-us/download/details.aspx?id=29062
您只需要ENU\x64\SqlLocalDB.MSI
这是您唯一需要安装在客户端计算机上的东西,我相信它也可以无提示安装,您需要为此做一点研究。
是的,还应该更改客户端计算机上的连接字符串,您需要对其进行更改,使其指向客户端计算机上的MDF文件,因为该位置可能与您计算机上的位置不同
编辑
要使连接字符串正常工作,您可以尝试以下
在客户端计算机上,创建一个文本文件并将扩展名重命名为.udl
例如,您有一个文件test.udl
现在从资源管理器中双击它,这将打开数据链接编辑器。
在这里,您可以输入/选择不同的设置,然后单击test connection
按钮。
建立工作连接后,请保存它,然后使用记事本打开此文件。
在内部可以找到有效的连接字符串
希望对您有帮助