c# - 无法连接到本地数据库 SQL
问题描述
我使用 SQL Server(本地数据库)创建的本地数据库存在问题。我可以连接到我计算机上的数据库,但如果我尝试连接到另一台计算机,我会收到以下错误消息:
我想要一个本地数据库来存储数据,我不需要服务器来管理数据库。
这是我的连接字符串:
`<connectionStrings>
<add name="stocksDB" connectionString="Data Source= (LocalDB)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\myDB.mdf;Integrated Security=True;" providerName="System.Data.SqlClient"/>
</connectionStrings>`
我在先决条件中包含了“SQL Server 2012 Express LocalDB”。
我做错什么了?
解决方案
如果您有两台计算机(假设它们的计算机名称是“pc_a”和“pc_b”,它们联网在一起并且程序在计算机“pc_a”上运行并且数据库驻留在计算机“pc_b”上,那么您的连接字符串需要包括计算机“pc_b”的机器名称。
即使它是本地机器,您也可以提供机器名称,因此如果程序与数据库在同一台机器上运行,或者如果程序在一台机器上运行而数据库在另一台机器上,那么下面的代码将起作用,这么久因为两台机器是联网的,并且您运行程序的帐户可以访问机器、实例和数据库。
请注意,在下面的示例中,安装 SQL 时使用了“默认”实例名称 (MSSQLSERVER)。当数据库实例名称是默认名称时,您不得显式提供实例名称(如果这样做,您将收到所显示的错误)。唯一一次显式提供实例名称是它不是默认实例名称。下面的代码可以处理任何一种情况(通过将 dbInstanceName 变量设置为“”或实例名称,例如“\SQLEXPRESS”)。请参阅 SO SQL Server:如何查找所有 localdb 实例名称。当它怀疑时,尝试一个空的实例名称和一个您认为是实例名称的名称,看看什么是有效的。
string databaseMachineName = "pc_b";
string databaseInstanceName = "";
string dbName = "stocksDb";
using (SqlConnection sqlConnection = new SqlConnection("Data Source=" + databaseMachineName + databaseInstanceName + "; Initial Catalog=" + dbName + "; Integrated Security=True;Connection Timeout=10"))
{
.
.
.
}
推荐阅读
- numpy - cv2.imread 和 open().read 有什么区别?
- android - 在 Gradle 5 中为 Android 项目使用 Maven 发布插件
- can-bus - 使用 CANoe - IL DLL 发送循环消息
- php - 我如何在 PHP 中的文档上的谷歌表上创建权限
- grails - Grails 2.4.4 - 如何在战争阶段存储配置变量并将其放入 Tomcat 环境中?
- swift - NoMatchingElementException 的 Earlgrey 错误
- c++ - 如何使用单个 c++ 类成员处理不同的结构?
- angular - Angular 5 JWT 总是说“无效令牌”
- angular - Angular 路由的条件
- java - 使用 intellij 和 Tomcat 的 SOAP Web 服务中的 web.xml 错误