Update语句中的oledbeexception
本文关键字:oledbeexception 语句 Update | 更新日期: 2023-09-27 18:12:01
1 ' public void Update(Person oldperson, Person newPerson){试一试{
command.CommandText ="Update TPersons SET [Password1]=?,[Name1]=?,[Expertise]=?,[Email id]=?,[Mobile]=?,[Phone no]=?,[Address]=? WHERE [ID]=?";
command.Parameters.Add(new OleDbParameter("Para1", newPerson.Password11));
command.Parameters.Add(new OleDbParameter("Para2", newPerson.Name11));
command.Parameters.Add(new OleDbParameter("Para3", newPerson.Expertise1));
command.Parameters.Add(new OleDbParameter("Para4", newPerson.Email1));
command.Parameters.Add(new OleDbParameter("Para5", newPerson.Mobile1));
command.Parameters.Add(new OleDbParameter("Para6", newPerson.Phone1));
command.Parameters.Add(new OleDbParameter("Para7", newPerson.Address1));
command.CommandType = CommandType.Text;
connection.Open();
command.ExecuteNonQuery();
}
catch (Exception)
{
throw;
}
finally
{
if (connection != null)
{
connection.Close();
}
}
}
我使用这个代码来更新我的访问数据库c#项目使用visual studio。这表明oledbeexception未被处理。UPDATE语句语法错误。请帮我解决这个问题,谢谢!
你有很多问题/错误:
first this: ,[Address[) VALUES
那么您已经尝试使用参数化的更新语句,这在默认情况下是一件好事,但是您做错了(对于SQL语句),并且也没有向您的命令对象添加任何参数(至少在您的代码中显示)。
查看文档以获得正确的参数化查询。
在使用access数据库时,参数的默认占位符是?
。除了使用sqlcommand参数外,这些参数需要以完全相同的顺序分配。
所以这里有一些未经测试的代码给你一个开始:
command.CommandText = "Update TPersons SET [Password1]=?,[Name1]=?,[Expertise]=?,[Email id]=?,[Mobile]=?,[Phone no]=?,[Address]=? WHERE [ID]=?" ;
command.Parameters.Add(new OleDbParameter("Para1",newPerson.Password11));
command.Parameters.Add(new OleDbParameter("Para2",newPerson.Name11));
…等等
阅读下面的示例,了解在OldeDB (access)或SQL Server中使用参数:
配置参数和参数数据类型