質問

アプリケーションを起動すると、 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はここでは関係ありません。

ここでのもう1つの問題は、私の会社がMySQLHelperを使用していることであり、可視性がありません(ヘルパーライブラリ用のdllのみがあります)。他のプロジェクトではうまく機能しているので、99%はここからエラーが発生しないと思います。

コードを見ずにデバッグする方法がない場合は、コードを取得するためにこのヘルパーを作成した人と連絡を取るまで待たなければなりません。

役に立ちましたか?

解決

接続文字列の参照は次のように実行する必要があります。

MySQLHelper.ExecuteNonQuery(
ConfigurationManager.ConnectionStrings["MyDB"].ConnectionString,
CommandType.Text,
sqlQuery,
sqlParams);

ConfigurationManager.AppSettings [&quot; ConnectionString&quot;] は、 ConnectionString という名前の何かを AppSettings で探しますが、見つけることはできません。これが、エラーメッセージが&quot; ConnectionString&quot;を示した理由です。 ConnectionString という名前の AppSettings の初期化されたプロパティを探しているため、プロパティは初期化されていません

ConfigurationManager.ConnectionStrings [&quot; MyDB&quot;]。ConnectionString は、&quot; MyDB&quot;という名前の接続文字列を検索するように指示します。

web.config接続文字列の使用について話している人がいます

他のヒント

データソースがデータにバインドしようとしたが、接続文字列が見つからないためにバインドできない場合、このエラーが発生します。私の経験では、これは通常web.configのエラーによるものではありません(私はこれを100%確信していませんが)。

プログラムでデータソース(SqlDataSourceなど)を割り当てるか、クエリを作成する(つまり、SqlConnection / SqlCommandの組み合わせを使用する)場合は、ConnectionStringを割り当てたことを確認してください。

SqlConnection myCon = new SqlConnection(ConfigurationManager.ConnectionStrings[nameOfString].ConnectionString;

データバインドされた要素をデータソースに接続する場合(GridViewまたはComboBoxをSqlDataSourceに接続する場合)、データソースが接続文字列の1つに割り当てられていることを確認してください。

コードを投稿して(データバインドされた要素とweb.configが安全になるように)、確認することができます。

編集:問題は、AppSettings領域から接続文字列を取得しようとしていることであり、プログラムではそれが存在しないことです。それを ConfigurationManager.ConnectionStrings [&quot; ConnectionString&quot;]。ConnectionString に置き換えてみてください(ConnectionStringが接続文字列の名前の場合)

接続文字列が AppSettings ない

探しているのは次の場所です:

System.Configuration.ConfigurationManager.ConnectionStrings["MyDB"]...

次の例のように、()の代わりに[]を使用します。

SqlDataAdapter adapter = new SqlDataAdapter(sql, ConfigurationManager.ConnectionStrings["FADB_ConnectionString"].ConnectionString);
            DataTable data = new DataTable();
            DataSet ds = new DataSet();

コードビハインドページでの使用:-

SqlConnection con = new SqlConnection("Data Source = DellPC; Initial Catalog = Account; user = sa; password = admin");

正常に動作するはずです

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top