我遇到了
的问题{
double a = Convert.ToDouble(textBox1.Text);
double b = Convert.ToDouble(textBox8.Text);
textBox8.Text = (a + b).ToString();
textBox1.Text = "";
double c = Convert.ToDouble(textBox2.Text);
double d = Convert.ToDouble(textBox9.Text);
textBox9.Text = (c + d).ToString();
textBox2.Text = "";
}
//cmd = new OleDbCommand("update Table1 set balance='" + textBox8 + "','" + textBox9.Text + "','" + textBox10.Text + "','" + textBox11.Text + "','" + textBox12.Text + "','" + textBox13.Text + "','" + textBox14.Text + "', where ID=" + textBox15.Text, con);
cmd = new OleDbCommand("UPDATE Table1 SET OUT = ? " + " WHERE ID = ?", con);
cmd.Parameters.AddWithValue("OUT", textBox8.Text);
cmd.Parameters.AddWithValue("OUT", textBox9.Text);
cmd.Parameters.AddWithValue("ID", textBox15.Text);
con.Open();
cmd.ExecuteNonQuery();
con.Close();
loaddata();
}
我有2 textbox
,一个是平衡,一个是IN
Balance是从我的数据库加载数据,IN允许用户键入值,所以
IN + Balance = Balance
,这将更新到数据库。
更新功能是完美的工作。但我如何首先添加值然后运行更新?指教。
答案 0 :(得分:2)
因为你这样做
textBox8.Text = (a + b).ToString();
textBox9.Text = (c + d).ToString();
这意味着,和是textBox8.Text
和textBox9.Text
然后你这样做
cmd.Parameters.AddWithValue("OUT", textBox8.Text);
cmd.Parameters.AddWithValue("OUT", textBox9.Text);
,您的查询是:
UPDATE Table1 SET OUT = textbox8.Text WHERE ID = x
UPDATE Table1 SET OUT = textbox9.Text WHERE ID = x
当您执行cmd.ExecuteNonQuery()
时,OUT
中ID
x行中的列Table1
会更新两次,
首先,将其值设置为textbox8
的文本,然后将其更新为textbox9
的值。
我想,这不是你想要的。
对于不同的ID(即不同的行),您可能希望在循环中执行此操作,即
UPDATE Table1 SET OUT = textbox8.Text WHERE ID = x1
UPDATE Table1 SET OUT = textbox9.Text WHERE ID = x2
或
相同的ID但不同的列,即
UPDATE Table1 SET OUT = textbox8.Text, AnotherColumn=textbox9.Text WHERE ID = x