我正在尝试制作一个简单的数据库应用程序。它只是使用c#winform从本地数据库文件写入和读取,但是当我将应用程序文件夹移动到另一台PC时,它会出现错误。我以为这是connstring或文件访问的一个愚蠢的错误,但是当我单击继续并启动应用程序时,组合框中甚至没有加载任何内容(应正常填充,而无需使用任何数据库材料)。对不起,我的英语,谢谢您的答复。
我无法发布图片,因为我是新来的,但该异常在其他文字中表示:
错误50-发生本地数据库运行时错误。指定的 LocalDB实例不存在。
答案 0 :(得分:2)
解决方案实际上取决于您应用程序的设计。
集中式数据库:
如果您的应用程序应该使用集中式数据库-意味着多个c#winform应用程序连接到同一数据库。
然后,您必须确保在连接字符串中将数据库服务器的IP地址/计算机名称/标识符称为“数据源”。
例如下面的连接字符串显示了如何使用Windows身份验证进行连接时如何连接数据库。您将必须将Data Source
替换为IP地址,并将Initial Catalog
替换为数据库名称
Data Source=your-server-address;Initial Catalog=your-database;Integrated Security=TRUE;
本地数据库:
如果您的应用程序应该使用本地数据库,即每个c#winforms应用程序用户都将在其计算机上使用本地数据库, 然后,您必须确保安装了必需的组件(即SQL Express,SQL或要使用的任何其他数据库服务器)。
希望这可以澄清。
答案 1 :(得分:1)
检查您的LocalDB连接字符串,并将其指向正确的文件位置,如下所示(取自here)。现在,当您移动应用程序(AttachDBFilename属性)时,其路径有所不同
<connectionStrings>
<add name="DefaultConnection" connectionString="Data Source=
(LocalDb)\MSSQLLocalDB;Initial Catalog=aspnet-MvcMovie-fefdc1f0-bd81-4ce9-b712-
93a062e01031;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\aspnet-
MvcMovie-fefdc1f0-bd81-4ce9-b712-93a062e01031.mdf"
providerName="System.Data.SqlClient" />
</connectionStrings>