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"

1つではなく2つのセミコロンを配置します。

于 2012-10-17T11:44:39.793 に答える
0

SQLデータベースのサーバー名がローカルアドレスであり、DataSource変数の/ sqlexpressではないことを期待していると思います

于 2012-10-17T11:45:46.687 に答える