1

Textfields からデータを受信するためのデータベース接続を確立し、そのデータをデータベース レコードに保存したいと考えています。そのために、今まで私は試しました:

.mdfデータベース ファイルを作成し、その中で as という名前のテーブルを作成Table1し、次のコードで 2 つのテキスト フィールドと送信ボタンを配置しました: data.aspx

<b>Username:<asp:TextBox ID="TextBox1" runat="server" BackColor="AliceBlue">
</asp:TextBox><br/>
<b>Lastname:<asp:TextBox ID="TextBox2" runat="server" BackColor="AliceBlue">
</asp:TextBox><br/>
<asp:Button ID="Button1" runat="server" Text="Submit" OnClick="SubmitBtn_Click"/>

コード ファイルは次のとおりです: data.aspx.cs

using System.Web.Configuration;
using System.Data.SqlClient;
protected void SubmitBtn_Click(object sender, EventArgs e)
{
    string connectionStrings = "Data Source=|SQLEXPRESS;Integrated                       
   Security=True; Connect Timeout=30;User Instance=True;";

    using (SqlConnection sqlConnection = new SqlConnection(connectionStrings))
{
    string insertStatement = "INSERT INTO Table1(column1,column2) 
                              VALUES (@col1, @col2)";
    SqlCommand sqlCommand = new SqlCommand(insertStatement, sqlConnection);
    sqlCommand.Parameters.AddWithValue("@col1", TextBox1.Text);
    sqlCommand.Parameters.AddWithValue("@col2", TextBox2.Text);
    sqlConnection.Open();
    sqlCommand.ExecuteNonQuery();
    try
    {
        sqlConnection.Open();
        sqlCommand.ExecuteNonQuery();

    }
    finally
    {
        sqlConnection.Close();
    }
}


}

また、接続を確立するための次のような構成ファイルもあります。そのコードは次のとおりです

<?xml version="1.0"?>
<configuration>
<system.web>
    <compilation debug="true" targetFramework="4.0" />

</system.web>
</configuration>

しかし、そのコードでは、送信ボタンをクリックした後にこのエラーが発生します:

SQL Server への接続を確立中に、ネットワーク関連またはインスタンス固有のエラーが発生しました。サーバーが見つからないか、アクセスできませんでした。インスタンス名が正しいこと、および SQL Server がリモート接続を許可するように構成されていることを確認してください。(プロバイダー: 名前付きパイプ プロバイダー、エラー: 40 - SQL Server への接続を開けませんでした)

また、例外:

System.Data.SqlClient.SqlException: SQL Server への接続を確立中に、ネットワーク関連またはインスタンス固有のエラーが発生しました。サーバーが見つからないか、アクセスできませんでした。インスタンス名が正しいこと、および SQL Server がリモート接続を許可するように構成されていることを確認してください。(プロバイダー: 名前付きパイプ プロバイダー、エラー: 40 - SQL Server への接続を開けませんでした)

誰でも私を助けることができますか?

4

2 に答える 2

3

SQLサーバーインスタンスが実行されているかどうかを確認します。[スタート]->[ SQLServer構成マネージャー]
に移動し、SQLサーバーインスタンスが開始されているかどうかを確認します。

または、接続文字列を次のように変更してみてください

string connectionStrings = "Data Source=.\SQLEXPRESS;
 Initial Catalog=databaseName Integrated Security=True;";
于 2012-12-21T14:28:13.200 に答える
0

SQL Server インスタンスに実際に到達できないか、SQL Server インスタンスが開始されていないか、SQL Server インスタンスにリモートで到達するための既定のポート 1433 の要求をファイアウォールがブロックしているために、例外がスローされます。

ドキュメント ページを読む: http://msdn.microsoft.com/en-us/library/ms177440.aspx

接続文字列を必ず確認してください。あなたが書いた接続文字列:

"Data Source=|SQLEXPRESS;Integrated                       
   Security=True; Connect Timeout=30;User Instance=True;"

正しくないと思います。SQLEXPRESSという名前のローカルの 2 番目の SQL インスタンスに接続している場合、これは正しい接続文字列です。

"Data Source=.\SQLEXPRESS;Integrated                       
   Security=True; Connect Timeout=30;User Instance=True;"

さらに、設定を使用していますIntegrated Security=True;。これは、Windows 資格情報を使用して接続しようとしていることを意味します。Windows 資格情報に接続する権利がありますか? そうでない場合は、この設定を削除し、次の接続文字列のようにユーザー名とパスワードを追加します。

"Data Source=.\SQLEXPRESS;User Id=sa; Password=sa123; Connect Timeout=30;"

設定の使用に関するこの興味深い質問を読んでください。Integrated Security

また、SQLEXPRESSインスタンスはユーザー インスタンスのようです。このインスタンスは有効ですか?

于 2012-12-21T17:09:15.790 に答える