基于服务的数据库实体框架连接错误发布的版本

时间:2017-09-28 04:58:47

标签: c# .net sql-server winforms entity-framework

我正在编写一个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=&quot;data source=(LocalDB)\MSSQLLocalDB;attachdbfilename=|DataDirectory|\Database.mdf;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework&quot;"  
     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" />

1 个答案:

答案 0 :(得分:0)

我很确定这篇文章会被标记为重复,因为已经多次回答了类似的问题,但是现在就去了。

  • 您正在使用LocalDB,这意味着它无法共享,因为它在SQL Server Express上运行。

如果您只是想要一个LocalDB,请在发布WinForms应用程序后看到此answer以实现它。

基本上您希望使用必备组件发布应用,因此您应该在应用中发布这些内容。

  • 如果要在应用程序实例之间共享单个数据库,请了解如何使用SQL Server here设置一个数据库。

然后,了解应该使用的连接字符串格式。

通过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") 
{
}