[英]update data with 2 keys using oledb in c#
我用C#制作了项目,并将其与具有2个表的数据库连接。 第一张桌子是Tcostumers关于客户的详细信息,效果很好。 第二张表是Treports,其中列出了每年每个客户的报告。 它们的键是cid和cyear。 我成功地制作了一个按钮,可以为客户添加新的一年。 问题是使更新cinfo的更新按钮。 当我运行程序时没有错误,但是它不保存信息。 这是我的代码:
private void button2_Click(object sender, EventArgs e)
{
OleDbCommand command = new OleDbCommand(@"UPDATE Treports
SET cinfo = @cinfo
WHERE cid = @cid,
cyear = @cyear", connect);
command.Parameters.AddWithValue("@cinfo", textBox2.Text);
command.Parameters.AddWithValue("@cid", textBox3.Text);
command.Parameters.AddWithValue("@cyear", textBox1.Text);
try
{
connect.Open();
}
catch (Exception expe)
{
MessageBox.Show(expe.Source);
}
try
{
command.ExecuteNonQuery();
}
catch (Exception expe)
{
MessageBox.Show(expe.Source);
}
finally
{
connect.Close();
}
}
请参阅: 使用oledbcommand.executeNonQuery()更新MS Access记录时出现问题,结果未更新
问题是OleDbCommand不支持命名参数:
更换:
command.Parameters.AddWithValue("@cinfo", textBox2.Text);
command.Parameters.AddWithValue("@cid", textBox3.Text);
command.Parameters.AddWithValue("@cyear", textBox1.Text);
带有:
command.Parameters.AddWithValue("?", textBox2.Text);
command.Parameters.AddWithValue("?", textBox3.Text);
command.Parameters.AddWithValue("?", textBox1.Text);
我在使用OleDbCommand的AS / 400上工作,当我说这是我曾经处理过的最大的痛苦时,请相信我。 我们的某些表有10多个键。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.