アプリケーションを起動すると、次のメッセージが表示されます。ConnectionStringプロパティは初期化されていません。
Web.config:
<connectionStrings>
<add name="MyDB"
connectionString="Data Source=localhost\sqlexpress;Initial Catalog=mydatabase;User Id=myuser;Password=mypassword;" />
</connectionStrings>
スタック:
System.Data.SqlClient.SqlConnection.PermissionDemand() +4876643
System.Data.SqlClient.SqlConnectionFactory.PermissionDemand(DbConnection outerConnection) +20
System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory) +117
System.Data.SqlClient.SqlConnection.Open() +122
私は.NETを初めて使用しますが、これを入手できません。 Googleで多くの回答を見つけましたが、私の問題を実際に修正したものはありませんでした。
どういう意味ですか?私のweb.configは悪いですか?私の機能は悪いですか? SQL構成が正しく機能していません(sqlexpressを使用していますか?)
ここでの私の主な問題は、どこでこれをデバッグし始めるかわからないということです...何でも助けになるでしょう。
編集:
失敗コード:
MySQLHelper.ExecuteNonQuery(
ConfigurationManager.AppSettings["ConnectionString"],
CommandType.Text,
sqlQuery,
sqlParams);
sqlQueryは、「select * from table」のようなクエリです。 sqlParamsはここでは関係ありません。
ここでの他の問題は、私の会社がMySQLHelperを使用していることであり、私はそれについて可視性がありません(ヘルパーライブラリ用のdllのみがあります)。他のプロジェクトではうまく機能しているので、99%はここからエラーが発生しないと思います。
コードを見ずにデバッグする方法がない場合は、コードを取得するためにこのヘルパーを作成した人と連絡を取るまで待たなければなりません。
接続文字列の参照は次のように行う必要があります。
MySQLHelper.ExecuteNonQuery(
ConfigurationManager.ConnectionStrings["MyDB"].ConnectionString,
CommandType.Text,
sqlQuery,
sqlParams);
ConfigurationManager.AppSettings["ConnectionString"]
はAppSettings
でConnectionString
という名前の何かを探しますが、それは見つかりません。これが、エラーメッセージに"ConnectionString" property has not been initialized
、AppSettings
という名前のConnectionString
の初期化されたプロパティを探しているためです。
ConfigurationManager.ConnectionStrings["MyDB"].ConnectionString
は、「MyDB」という名前の接続文字列を探すように指示します。
データソースがデータにバインドしようとしたが、接続文字列が見つからないためにバインドできない場合に、このエラーが発生します。私の経験では、これは通常web.configのエラーが原因ではありません(これは100%確信できませんが)。
プログラムでデータソース(SqlDataSourceなど)を割り当てるか、クエリを作成する(つまり、SqlConnection/SqlCommandの組み合わせを使用する)場合は、必ずConnectionStringを割り当ててください。
SqlConnection myCon = new SqlConnection(ConfigurationManager.ConnectionStrings[nameOfString].ConnectionString;
データバインドされた要素をデータソース(つまり、GridViewまたはComboBoxからSqlDataSource)に接続する場合は、データソースが接続文字列のいずれかに割り当てられていることを確認してください。
(データバインドされた要素とweb.configを安全にするために)コードを投稿すると、それを確認できます。
編集:問題は、AppSettingsエリアから接続文字列を取得しようとしていることだと思いますが、プログラムではそれが存在しない場所です。それをConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString
に置き換えてみてください(ConnectionStringが接続文字列の名前である場合)。
接続文字列はnot in AppSettingsです。
あなたが探しているのは:
System.Configuration.ConfigurationManager.ConnectionStrings["MyDB"]...
単にコードビハインドページで以下を使用します。
SqlConnection con = new SqlConnection("Data Source = DellPC; Initial Catalog = Account; user = sa; password = admin");
それはうまくいくはずです
次の例のように、()の代わりに[]を使用します。
SqlDataAdapter adapter = new SqlDataAdapter(sql, ConfigurationManager.ConnectionStrings["FADB_ConnectionString"].ConnectionString);
DataTable data = new DataTable();
DataSet ds = new DataSet();