贴代码和报错:
   try{
                OleDbConnection dbconn; //数据库连接
                dbconn = new OleDbConnection(@"provider=microsoft.jet.oledb.4.0; Data Source=E:\d\steward\steward.mdb");
                dbconn.Open();
                String queryStr = "insert into steward(names,numbers,content,userName,userTel,addTime )values('" + str_nameBox + "','" + str_productBox + "','" + str_contentBox + "','" + str_usernameBox + "','" + str_usertelBox + "','" + str_curDate + "' )";
                OleDbCommand MyCom = new OleDbCommand(queryStr, dbconn);
                MyCom.ExecuteNonQuery();
                MessageBox.Show("数据添加成功", "温馨提示");    
                dbconn.Close();            }
            catch (Exception ex)
            { // 抛出链接异常 
                //MessageBox.Show(ex.ToString()); 
                ss.Text = ex.ToString();
               
            
            }ss.Text:的内容System.Data.OleDb.OleDbException: INSERT INTO 语句的语法错误。
   在 System.Data.OleDb.OleDbCommand.ExecuteCommandTextForSingleResult(tagDBPARAMS dbParams, Object& executeResult)
   在 System.Data.OleDb.OleDbCommand.ExecuteCommandText(Object& executeResult)
   在 System.Data.OleDb.OleDbCommand.ExecuteCommand(CommandBehavior behavior, Object& executeResult)
   在 System.Data.OleDb.OleDbCommand.ExecuteReaderInternal(CommandBehavior behavior, String method)
   在 System.Data.OleDb.OleDbCommand.ExecuteNonQuery()
   在 steward.AddData.button1_Click(Object sender, EventArgs e) 位置 E:\d\steward\AddData.cs:行号 75

解决方案 »

  1.   

    INSERT INTO 语句的语法错误。 不是提示你了吗?检查下啊,你应该是传进去的数据类型跟数据库中的数据类型对不上,所以插不进去
      

  2.   

    SQL语句没问题。我把语句调出来,在数据库资源管理器 运行SQL都没问题。
      

  3.   


    //参数化就不会有什么‘号,“号之类的错误了。
     OleDbConnection dbconn; //数据库连接
      dbconn = new OleDbConnection(@"provider=microsoft.jet.oledb.4.0; Data Source=E:\d\steward\steward.mdb");
      dbconn.Open();
      String queryStr = "insert into steward(names,numbers,content,userName,userTel,addTime )values(@str_nameBox, @str_productBox,@str_contentBox,@str_usernameBox,@str_usertelBox,@str_curDate)"
     
      OleDbCommand MyCom = new OleDbCommand(queryStr, dbconn);
                            MyCom.Parameters.Add(new OleDbParameter("@str_nameBox",str_nameBox));
                            MyCom.Parameters.Add(new OleDbParameter("@str_productBox", str_productBox));
                            MyCom.Parameters.Add(new OleDbParameter("@str_contentBox", str_contentBox));
                            MyCom.Parameters.Add(new OleDbParameter("@str_usernameBox", str_usernameBox));
                            MyCom.Parameters.Add(new OleDbParameter("@str_usertelBox", str_usertelBox));
                            MyCom.Parameters.Add(new OleDbParameter("@str_curDate", str_curDate));
       MyCom.ExecuteNonQuery();
      MessageBox.Show("数据添加成功", "温馨提示");   
      dbconn.Close();
      

  4.   

    String queryStr = "insert into steward(names)values('2' )";
    也报错。//表字段 仅id是必填。
      

  5.   

     try{
                    OleDbConnection dbconn; //数据库连接
                    dbconn = new OleDbConnection(@"provider=microsoft.jet.oledb.4.0; Data Source=E:\d\steward\steward.mdb");
                    dbconn.Open();
                    String queryStr = "insert into steward(names)values('@str_nameBox)";
                   // OleDbCommand MyCom = new OleDbCommand(queryStr, dbconn);
                    OleDbCommand MyCom = new OleDbCommand(queryStr, dbconn);
                    MyCom.Parameters.Add(new OleDbParameter("@str_nameBox", str_nameBox));
                    MyCom.ExecuteNonQuery();
                    MessageBox.Show("数据添加成功", "温馨提示");    
                    dbconn.Close();
                }
                catch (Exception ex)
                { // 抛出链接异常 
                    //MessageBox.Show(ex.ToString()); 
                    ss.Text = ex.ToString();
                   
                
                }还是报错。
    System.Data.OleDb.OleDbException: INSERT INTO 语句的语法错误。
       在 System.Data.OleDb.OleDbCommand.ExecuteCommandTextForSingleResult(tagDBPARAMS dbParams, Object& executeResult)
       在 System.Data.OleDb.OleDbCommand.ExecuteCommandText(Object& executeResult)
       在 System.Data.OleDb.OleDbCommand.ExecuteCommand(CommandBehavior behavior, Object& executeResult)
       在 System.Data.OleDb.OleDbCommand.ExecuteReaderInternal(CommandBehavior behavior, String method)
       在 System.Data.OleDb.OleDbCommand.ExecuteNonQuery()
       在 steward.AddData.button1_Click(Object sender, EventArgs e) 位置 E:\d\steward\AddData.cs:行号 77
      

  6.   

    String queryStr = "insert into steward(names)values('@str_nameBox)";
    多了'号,看红色的
      

  7.   

     try{
                    OleDbConnection dbconn; //数据库连接
                    dbconn = new OleDbConnection(@"provider=microsoft.jet.oledb.4.0; Data Source=E:\d\steward\steward.mdb");
                    dbconn.Open();
                    OleDbCommand MyCom = new OleDbCommand("insert into steward(names)values('2')", dbconn);
                    MyCom.ExecuteNonQuery();
                    MessageBox.Show("数据添加成功", "温馨提示");    
                    dbconn.Close();
                }
                catch (Exception ex)
                { // 抛出链接异常 
                    //MessageBox.Show(ex.ToString()); 
                    ss.Text = ex.ToString();
                   
                
                }这都错。。F了
      

  8.   

     String queryStr = "insert into steward(names,numbers,content,userName,userTel,addTime )values('" + str_nameBox + "','" + str_productBox + "','" + str_contentBox + "','" + str_usernameBox + "','" + str_usertelBox + "','" + str_curDate + "' )";
    上面的insert语句是插入在文本框里面的内容吧~~那么写成这样你再看
     String queryStr = "insert into steward(names,numbers,content,userName,userTel,addTime )values('" + str_nameBox.Text + "','" + str_productBox.Text + "','" + str_contentBox.Text + "','" + str_usernameBox.Text + "','" + str_usertelBox.Text + "','" + str_curDate.Text + "' )";
      

  9.   

    str_nameBox就是取出来的值。
    "insert into steward(names)values('2')"这个能有错么? 可是执行还是出错!
      

  10.   

    "insert into steward(names)values('2')" 看看values前面是否有空格,这里好像你少了一个空格。
      

  11.   

    空格不会影响。 语法没错误,字段,表没错。
    "insert into steward(names) values ('2')" 也好
    "insert into steward(names) values('2')" 
    "insert into steward ( names ) values ('2')"  都正确的
      

  12.   

    如果都没错就把所有字段用[]括起来,防止字段冲突,刚用Access的时候我也吃了不少这类苦头
      

  13.   

     保留字userName   =>[userName]