C# Update语句中的OLEDBEException
`公共作废更新(个人旧版、个人新版) { 尝试 {C# Update语句中的OLEDBEException,c#,ms-access-2007,C#,Ms Access 2007,`公共作废更新(个人旧版、个人新版) { 尝试 { command.CommandText ="Update TPersons SET [Password1]=?,[Name1]=?,[Expertise]=?,[Email id]=?,[Mobile]=?,[Phone no]=?,[Address]=? WHERE [ID]=?"; command.Parameters.Add(new OleDbParameter("Para1", newPe
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();
}
}
}
我正在使用此代码在我的access数据库c#项目中使用visual studio进行更新。这显示一个OLEDBE异常未处理。update语句中出现语法错误。请帮助我解决此问题。谢谢!您有许多问题/错误: 首先,这个:
,[Address[)值
然后,您尝试使用参数化的update语句,这在默认情况下是一件好事,但您做得不对(对于sql语句),并且没有向您的命令对象添加任何参数(至少是代码中显示的参数)
请检查以获得正确的参数化查询
使用access数据库时,参数的默认占位符为?
。除qith 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中使用参数的示例,请阅读以下内容:
,[Address[)VALUES
你看到问题了吗?我仍然收到一个异常,在UPDATE语句中出现语法错误!因此,请用异常的完整消息编辑你的问题。另请参见下面我的答案。我已经尝试了所有三种可能性。(其中两种被注释)。而且它们都不起作用。如果能帮我解决这个问题,我也愿意提供完整的代码!奇怪的是[是一个问题,但参数名称也有问题。如果我记得很清楚,这是我对ms access数据库的update语句。这三种方法都同样不正确吗?很抱歉,我只是一个初学者!我尝试了这个方法,但仍然得到一个错误,在update语句中出现语法错误!所以请edit您的问题显示您当前的代码。最好也没有注释行。我已经输入了编辑过的代码,但仍然得到未处理的OLEDBEException。没有为一个或多个参数提供值。您需要为提供一个参数,其中[ID]=?
,就像我在对您的问题的注释中所写的那样。