-1

我遇到了问题

{
   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,一个是 Balance,一个是 IN

余额是从我的数据库中加载数据,允许用户输入一个值,所以

IN + Balance = Balance,这将更新到数据库。

更新功能是完美的。但是我怎样才能先添加值然后运行更新?建议。

4

1 回答 1

2

因为你正在这样做

textBox8.Text = (a + b).ToString();
textBox9.Text = (c + d).ToString();

这意味着 sum 与textBox8.TextandtextBox9.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在行中的IDx列Table1会更新两次,

首先,它的值被设置为 Text oftextbox8然后它被更新为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
于 2013-03-26T07:50:03.180 回答