跟踪调试一下,
你的单引号用的也不对。strInsert +=txtname.Text +",'";
strInsert +=txtbm.Text +",'";应该是strInsert +=txtname.Text +",'";
strInsert +=txtbm.Text +"','";  //后面也要加一个单引号啊
其他地方你都没加
你调试一下。问题就很好解决。

解决方案 »

  1.   

    VALUES ('sdfgg','asfdasdf','asfdasdf',9,'asdfasdf'')你看看插入的语句是否有问题?假如:txtname.Text的值是:AAAAAVALUES (";
    strInsert +=txtname.Text +",'";而你的语句产生的结果是:
    VALUES (6,';
    正确的应该是:VALUES ('6',';既:
    VALUES ("';
    strInsert +=txtname.Text +"','";在调试状态仔细看看具体要执行的SQL语句是否有问题
      

  2.   

    改正:而你的语句产生的结果是:
    VALUES (AAAAA,';
    正确的应该是:VALUES ('AAAAA',';
      

  3.   

    其中一个很明显的错误就是少了'.你产生的都是
    values(a',b',c'...)
    正确的:
    values('a','b','c'...)
    如果是数字也可
    values(a,b,c....)
      

  4.   

    我改了又提示找不到输入表:cust 这是怎么回事呢?
      

  5.   

    打开boos.mdb,看有没有cust这个表
      

  6.   

    在OleDbCommand inst = new OleDbCommand ( strInsert , myConn ) ;前加上MessageBox.Show(strInsert);
    把结果直接放在Access的View里面运行一下看看错在哪?
      

  7.   

    打印一下Application.StartupPath +"\\boos.mdb"是什么。
      

  8.   

    cust
    ==>
    [cust]试试
    建议将生成的SQL语句,打印出来,在ACCESS中建立一个查询,
    再切换到SQL编辑状态。运行你的SQL语句,调试
      

  9.   

    多半是你的sql语句出错
    为什不用参数呢?如:
    sql = "Insert Into cust(a ,b,c,) Values(?,?,?)";
    OleDbCommand comm = new OleDbCommand(sql ,oleDbconn);
    comm.Parameters.Add("@a",this.textboxa.Text);
    comm.Parameters.Add("@b",this.textboxb.Text);
    comm.Parameters.Add("@c",this.textboxc.Text);
    这样保证不会出错~~~