1公共无效更新( Person老年人,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();
}
}
}我正在使用此代码更新access数据库中的c#项目,使用visual studio.This向我展示了更新statement.Please中的OleDBException was unhandled.Syntax错误,帮助我解决这个.Thanku!
发布于 2014-07-08 10:18:52
您有许多问题/错误:
--:,[Address[) VALUES
然后,您尝试使用参数化update语句,默认情况下这是一件好事,但是您做错了(对于sql语句),并且也没有向yout命令对象添加任何参数(至少在代码中显示了这些参数)。
请查看文档以获得正确的参数化查询。
在使用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)或Server中使用参数的示例,请阅读以下内容:
配置参数和参数数据类型
https://stackoverflow.com/questions/24629204
复制相似问题