0

在我的 app.config 中:

<add name ="connSpionshopString" connectionString="Data
Source=.\SQLEXPRESS;;AttachDbFileName=|DataDictionary|Spionshop.mdf;
Integrated Security=True;User Instance=True"/>

在我的 form.cs 中:

SqlConnection conn2 = new SqlConnection();
        conn2.ConnectionString = ConfigurationManager
                                 .ConnectionStrings["connSpionshopString"]
                                 .ConnectionString;

这总是会出现错误:“键'attachdbfilename'的值无效。”

我不知道这有什么问题.. :(

4

4 回答 4

2

您应该能够通过稍微修改它来修复它:

<add name ="connSpionshopString" connectionString="Data Source=.\SQLEXPRESS;AttachDbFileName=|DataDirectory|Spionshop.mdf;Integrated Security=True;User Instance=True"/> 

你有DataDictionary而不是DataDirectory

于 2012-10-17T11:47:14.377 回答
1

如果 SqlConnection 类认为数据库服务器/主机名不正确,则可能会引发键“attachdbfilename”错误的无效值。使用 SQL Server Express 时,您只能使用本地主机的实例(.、(本地)或 NETBIOS 或本地机器的 DNS 名称)。

这意味着要么像这样使用

<add name ="connSpionshopString" connectionString="Data 
Source=.;AttachDbFileName=|DataDictionary|Spionshop.mdf;Integrated Security=True;User 
Instance=True"/>

或者

<add name ="connSpionshopString" connectionString="Data 
Source=machinename;AttachDbFileName=|DataDictionary|Spionshop.mdf;Integrated Security=True;User 
Instance=True"/>

或者

<add name ="connSpionshopString" connectionString="Data 
Source=(local);AttachDbFileName=|DataDictionary|Spionshop.mdf;Integrated Security=True;User 
Instance=True"/>
于 2012-10-17T11:45:00.267 回答
0

我相信你有一个错字:

connectionString="Data Source=.\SQLEXPRESS; **HERE!! ;** 
                  AttachDbFileName=|DataDictionary|Spionshop.mdf;
                  Integrated Security=True;User Instance=True"

你放了 2 个分号而不是 1 个。

于 2012-10-17T11:44:39.793 回答
0

我想期望 sql 数据库的服务器名称是本地地址,而不是 DataSource 变量中的 /sqlexpress

于 2012-10-17T11:45:46.687 回答