我正在编写一个Windows窗体应用程序,我想在应用程序中保存数据。因为我使用了基于服务的数据库和.mdf
数据库文件,我使用了实体框架。
到目前为止,一切正常,直到我发布文件并在另一台计算机上打开它。应用程序打开,一切正常,但是当谈到数据库交互时,它会抛出一个很大的错误:
************异常文本************
System.Data.Entity.Core.EntityException:基础提供程序在Open上失败。System.Data.SqlClient.SqlException:建立与SQL Server的连接时发生与网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称是否正确,以及SQL Server是否配置为允许远程连接。 (提供程序:SQL网络接口,错误:50 - 发生本地数据库运行时错误。指定的LocalDB实例不存在。)
这是错误的屏幕截图:https://www.dropbox.com/s/gwban6ab97c6fya/22093543_10213995193571435_760919436_n.png?dl=0
如果您需要将项目上传到此处:https://www.dropbox.com/s/ubpc683ggtihh6k/usercontrol.zip?dl=0
我尝试了很多方法,但没有任何工作,安装程序版本也是如此。
有人可以帮我吗?
以下是我的连接字符串:
<add name="DatabaseEntities"
connectionString="metadata=res://*/dbModel.csdl|res://*/dbModel.ssdl|res://*/dbModel.msl;provider=System.Data.SqlClient;provider connection string="data source=(LocalDB)\MSSQLLocalDB;attachdbfilename=|DataDirectory|\Database.mdf;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework""
providerName="System.Data.EntityClient" />
<add name="OPLCheque.Properties.Settings.DatabaseConnectionString"
connectionString="Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\Database.mdf;Integrated Security=True"
providerName="System.Data.SqlClient" />
答案 0 :(得分:0)
我很确定这篇文章会被标记为重复,因为已经多次回答了类似的问题,但是现在就去了。
如果您只是想要一个LocalDB,请在发布WinForms应用程序后看到此answer以实现它。
基本上您希望使用必备组件发布应用,因此您应该在应用中发布这些内容。
然后,了解应该使用的连接字符串格式。
通过IP地址连接的示例:
connetionString="Data Source=IP_ADDRESS,PORT;
Network Library=DBMSSOCN;Initial Catalog=DatabaseName;
User ID=UserName;Password=Password"
有关详情,请参阅this。
配置:
<add name="DefaultConnection" connectionString="" providerName="" />
数据库上下文:
public DbContext()
: base ("DefaultConnection")
{
}