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]=?
,就像我在对您的问题的注释中所写的那样。