私のプログラムでは、作成したローカルデータベースの値(私の例では価格)を変更するオプションが必要です。ローカルSQL Serverデータベースの値を更新する方法
私は問題があります。接続はうまく動作し、デバッグがうまくいって、 "okを保存する"というメッセージも表示されますが、データベースではまったく変更されません。
private void button2_Click(object sender, EventArgs e)
{
var con = @"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=C:\Users\sam\Desktop\hello\hello\DB.mdf;Integrated Security=True";
using (SqlConnection myconnection = new SqlConnection(con))
{
try
{
myconnection.Open();
var query = string.Format("update DBTable set price='"+textBox2.Text+"' where ParamToCheck='"+comboBox5.Text+"'");
SqlCommand cm = new SqlCommand(query, myconnection);
cm.ExecuteNonQuery();
MessageBox.Show("saved ok !!");
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
}
ユーザーがcombobox5
から文字列を選択し、番号を入力することにより、textBox2
から彼の価格を変更することができます - 私は何をしたいこと - それは変更されません。
SSMSで直接実行するとクエリは機能しますか? – ChrisF
あなたのテーブル/カラム名は本当に 'DBTable'と' ParamToCheck'ですか? さらに、priceがvarchar/nvarcharでない場合は、値を引用符で囲む必要はありません。 – Marco
ExecuteNonQueryは、クエリによって更新された行の数を返します。あなたのメッセージボックスが「保存されました」というメッセージはあなたに真実を伝えません。 _int rowsUpdated = cm.ExecuteNonQuery(); _で確認してから、rowsUpdatedの値を確認してください。 – Steve