0

C# を使用して、顧客の詳細を受信するためのデータベース接続を確立したいと考えています。Visual Studio 2010 と共に sql-server 2008 を使用しています.....

このコードは次のとおりです。

<asp:Textbox id="TxtBox1" runat="server" />
<asp:Textbox id="TxtBox2" runat="server" />
<asp:Button id="Button1" runat="server" Onclick="Button1_Click" />

および分離コード:

protected void Button1_Click(Object sender,EventArgs e)
{
string Text1=TextBox1.Text;
string Text2=TextBox2.Text;
string connectionString="Data Source=servername;InitialCatalog=DataBaseNameUserID=sa;  Password=YourPassword;"

SqlConnection sqlConnection=new SqlConnection(connectionString);

string insertStatement="INSERT INTO TableName(column1,column2) VALUES Txtb1+","+Txtb2";

SqlCommand sqlCommand=new SqlCommand(insertStatement,sqlConnection);

try
{
sqlConnection.Open();
sqlCommand.ExecuteNonQuery();

}
finally
{
sqlConnection.Close();
}


}

その中にdata.mdfファイルを作成しました。フィールドを含むテーブルを作成しましたが、接続が確立されていませんというエラーが表示されます。問題を解決するのに役立つ人はいますか???

4

4 に答える 4

5

この接続文字列は間違っています。

string connectionString="Data Source=servername;InitialCatalog=DataBaseNameUserID=sa;" + 
                        "Password=YourPassword;"

する必要があります

string connectionString="Data Source=servername;InitialCatalog=DataBaseName; UserID=sa;" + 
                        "Password=YourPassword;"

ただし、アプリケーションで sa ユーザーを使用しないでください。Management Studio で新しいユーザーを作成するか、統合セキュリティを使用することをお勧めします。

また、コードの残りの部分はこのように書く必要があります

using(SqlConnection sqlConnection=new SqlConnection(connectionString))
{
     string insertStatement="INSERT INTO TableName(column1,column2) VALUES (@col1, @col2)";
     SqlCommand sqlCommand=new SqlCommand(insertStatement,sqlConnection);
     sqlCommand.Parameters.AddWithValue("@col1", Text1);
     sqlCommand.Parameters.AddWithValue("@col2", Text2);
     sqlConnection.Open();
     sqlCommand.ExecuteNonQuery();
}
于 2012-12-20T14:33:39.313 に答える
0

このコードはコンパイルされません。この行にセミコロンを追加する必要があります。

string connectionString="Data Source=servername;InitialCatalog=DataBaseNameUserID=sa;  Password=YourPassword;"

そのようです:

string connectionString="Data Source=servername;InitialCatalog=DataBaseNameUserID=sa;  Password=YourPassword;";

次の行も変更する必要があります。

string insertStatement="INSERT INTO TableName(column1,column2) VALUES Txtb1+","+Txtb2";

これに:

string insertStatement = "INSERT INTO TableName(column1,column2) VALUES " + Text1 + ", " + Text2;
于 2012-12-20T14:36:02.810 に答える
0

接続文字列自体が問題である可能性があります。Windows には、テストできる有効な接続文字列を作成する簡単な方法があり、それをアプリにコピーするだけです。私はそれについて数ヶ月前にここに書いた:

アプリのヒント:

  • asawyerが指摘したように、saアカウントを使用しないで、必要なデータベースにアクセスできるログインを作成してください。

  • usingステートメント を使用する

例:

using (SqlConnection connection = new SqlConnection(connectionString))  
    {  
      //here you open and execute the command
    }
于 2012-12-20T14:40:46.157 に答える
0

次のように接続文字列を使用します。

connectionString="Data Source=ServerAddress;Initial Catalog=DataBaseName;Integrated Security=SSPI;User ID=Domain\Username;Password=Password;"
于 2012-12-20T15:33:40.547 に答える