2012-11-29 63 views
0

为什么我有这个错误?错误消息是:Syntax error in INSERT INTO statement.更新方法上的OleDbException错误

我想向我的数据库添加一条记录,但它不起作用。 问题在哪里?

的代码是:

using (OleDbConnection connection = new OleDbConnection(connectionString)) 
     { 
      OleDbDataAdapter DbDataAdabter = new OleDbDataAdapter(); 
      DbDataAdabter.SelectCommand = new OleDbCommand("SELECT * FROM [Phone-Book]", connection); 

      OleDbCommandBuilder cb = new OleDbCommandBuilder(DbDataAdabter); 
      connection.Open(); 
      DataRow dataRow = myDataset.Tables["salam"].NewRow(); 

      dataRow[1] = textBox2.Text; 
      dataRow[2] = textBox3.Text; 
      dataRow[3] = textBox4.Text; 
      dataRow[4] = textBox5.Text; 

      dataRow.EndEdit(); 
      myDataset.Tables["salam"].Rows.Add(dataRow); 

      DbDataAdabter.Update(myDataset , "salam"); 

      connection.Close(); 
      connection.Dispose(); 
     } 
    } 
+0

您需要向我们展示在您的DataAdapter中对INSERT语句的查询。 –

+0

你能告诉我你的表结构吗? – sajanyamaha

+0

对于延迟感到抱歉。 @sajanyamaha: 数据行[0]:自动编号 数据行[1]:文本 [2]:文本 [3]:数 [4]:数 –

回答

0

使用DbDataAdabter.Update(),你必须非常小心表,即数据类型,如果它是在DB一个int然后将其转换,然后再插入像:

dataRow[1]=(int) dataRow[1]+10; 

此外,检查提供的所有值,这里我没有看到dataRow [0]提供任何地方,或者它是一个自动ID字段。