C# 数据库更新错误没有为一个或多个必需参数提供值
我试图使用update命令在ms access上更新我的数据库 是一个错误,每当我尝试执行它时,一个或多个必需参数都没有给出值 这是我的密码C# 数据库更新错误没有为一个或多个必需参数提供值,c#,ms-access,C#,Ms Access,我试图使用update命令在ms access上更新我的数据库 是一个错误,每当我尝试执行它时,一个或多个必需参数都没有给出值 这是我的密码 private void btnupdate_Click_1(object sender, EventArgs e) { OleDbConnection con = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=ShopRecords.accdb
private void btnupdate_Click_1(object sender, EventArgs e)
{
OleDbConnection con = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=ShopRecords.accdb");
OleDbDataAdapter ad = new OleDbDataAdapter();
try
{
ad.UpdateCommand = new OleDbCommand("UPDATE ShopRecords SET ProductDescription = '" +tbproductdescrip.Text + "' WHERE (ID= " + tbupdate.Text + ")", con);
con.Open();
ad.UpdateCommand.ExecuteNonQuery();
con.Close();
}
catch(Exception ex)
{
MessageBox.Show(ex.Message);
}
}
尝试以下下一个结构:
try
{
using (OleDbConnection con = new OleDbConnection(cs))
{
con.Open();
OleDbTransaction tran = con.BeginTransaction();
OleDbCommand cmd = new OleDbCommand("UPDATE ... SET ... WHERE ...", con);
cmd.Transaction = tran;
cmd.ExecuteNonQuery();
tran.Commit();
con.Close();
}
}
catch (OleDbException ex)
{
Console.WriteLine(ex);
}
另外,还有一个很好的示例:尝试以下结构:
try
{
using (OleDbConnection con = new OleDbConnection(cs))
{
con.Open();
OleDbTransaction tran = con.BeginTransaction();
OleDbCommand cmd = new OleDbCommand("UPDATE ... SET ... WHERE ...", con);
cmd.Transaction = tran;
cmd.ExecuteNonQuery();
tran.Commit();
con.Close();
}
}
catch (OleDbException ex)
{
Console.WriteLine(ex);
}
还有一个很好的例子:如果
tbproductdescripp
和tbupdate
是用户输入字段,您应该注意SQL注入。TBProductDescriptp.Text
和tbupdate.Text
的值是什么?它是一个供用户输入和更新的文本框如果TBProductDescriptp
和tbupdate
是用户输入字段,您应该注意SQL注入。tbproductDescriptp.Text
和tbupdate.Text
的值是什么?它是一个文本框,用户可以输入并更新em新OleDbConnection(cs)中的cs是什么?connectionString。在您的案例中,“Provider=Microsoft.ACE.OLEDB.12.0;Data Source=ShopRecords.accdb”datagridview和ms acess数据库均未更新请确保TBProductDescriptp.Text和tbupdate.Text均未为空。我尝试在两个文本框中输入值,但仍不起作用。erm新OleDbConnection(cs)中的cs是什么?connectionString。在“Provider=Microsoft.ACE.OLEDB.12.0;Data Source=ShopRecords.accdb”的情况下,datagridview和ms acess数据库均未更新请确保TbProductDescriptp.Text和tbupdate.Text均不为空。我已尝试在这两个文本框中输入值,但仍然无效。