シンプルINSERT INTO
C#アプリケーションを使用しているSQL Server。ExecuteNonQuery()が動作しません。
cmd.ExecuteNonQuery();
プログラムはエラーや破損はしませんが、何も起こりません。私は、dev/productionデータベースの不具合の可能性を探ってきましたが、そうではありません。
以下のコードは、[保存]ボタンのクリックです。データベースオブジェクトの名前と接続パラメータDataSource
Table
Catalog
などは、逐語ではなく一般化されています。
string val1 = firstTextBox.Text;
string val2 = secondTextBox.Text;
string val3 = thirdTextBox.Text;
SqlConnection conn = new SqlConnection(@"Data Source=DataSource;Initial Catalog=Catalog;User ID=username;Password=password");
string sql = "INSERT INTO dbo.Table(col1, col2, col3) VALUES (" + val1 + "," + val2 + "," + val3 + "); ";
try
{
conn.Open();
SqlCommand cmd = new SqlCommand(sql, conn);
cmd.ExecuteNonQuery();
}
catch (System.Data.SqlClient.SqlException ex)
{
string msg = "Insert Error:";
msg += ex.Message;
}
finally
{
conn.Close();
}
ありがとうございました!
あなたの問題に加えて、あなたのコードに存在する巨大なSQLインジェクションの脆弱性を修正することを検討しましたか? –
アプリケーションを追跡し、文字列 'sql'がどのように設定されているかを見せてください。 –
_int rowsAffected = cmd.ExecuteNonQuery()_を追加し、rowsAffectedの値を教えてください。 – Steve