我用的是ACCESS数据库,下面是我的SQL语句:
  MyCommand = new OleDbCommand("insert into job(title,time,department,name,tel,add,add1,schoolage,sex,specialty,work,needobj,need) values('"+Job.Text+"','"+Time.Text+"','"+Department.Text+"','"+Name.Text+"','"+Tel.Text+"','"+Add.Text+"','"+Add1.Text+"','"+Schoolage.Text+"','"+sex.Text+"','"+Specialty.Text+"','"+Work.Text+"','"+NeedObj.Text+"','"+Need.Text+"')",MyConn);
提示insert into语法错误,找不出错误在那里换个写法如下:
MyCommand = new OleDbCommand("insert into job(title,time,department,name,tel,add,add1,schoolage,sex,specialty,work,needobj,need) values(@title,@time,@department,@name,@tel,@add,@add1,@schoolage,@sex,@specialty,@work,@needobj,@need)",MyConn);

OleDbParameter parTitle = new OleDbParameter("@title",OleDbType.VarChar,50);
parTitle.Value = Job.Text.ToString();
MyCommand.Parameters.Add(parTitle);
OleDbParameter parTime = new OleDbParameter("@time",OleDbType.VarChar,50);
parTime.Value = Time.Text.ToString();
MyCommand.Parameters.Add(parTime);
OleDbParameter parDepartment = new OleDbParameter("@department",OleDbType.VarChar,50);
parDepartment.Value = Department.Text.ToString();
MyCommand.Parameters.Add(parDepartment);
OleDbParameter parName = new OleDbParameter("@name",OleDbType.VarChar,50);
parName.Value = Name.Text.ToString();
MyCommand.Parameters.Add(parName);
OleDbParameter parTel = new OleDbParameter("@tel",OleDbType.VarChar,50);
parTel.Value = Tel.Text.ToString();
MyCommand.Parameters.Add(parTel);
OleDbParameter parAdd = new OleDbParameter("@add",OleDbType.VarChar,50);
parAdd.Value = Add.Text.ToString();
MyCommand.Parameters.Add(parAdd);
OleDbParameter parAdd1 = new OleDbParameter("@add1",OleDbType.VarChar,50);
parAdd1.Value = Add1.Text.ToString();
MyCommand.Parameters.Add(parAdd1);
OleDbParameter parSchoolAge = new OleDbParameter("@schoolage",OleDbType.VarChar,50);
parSchoolAge.Value = Schoolage.Text.ToString();
MyCommand.Parameters.Add(parSchoolAge);
OleDbParameter parSex = new OleDbParameter("@sex",OleDbType.VarChar,50);
parSex.Value = sex.Text.ToString();
MyCommand.Parameters.Add(parSex);
OleDbParameter parSpecialty = new OleDbParameter("@specialty",OleDbType.VarChar,50);
parSpecialty.Value = Specialty.Text.ToString();
MyCommand.Parameters.Add(parSpecialty);
OleDbParameter parWork = new OleDbParameter("@work",OleDbType.VarChar,50);
parWork.Value = Work.Text.ToString();
MyCommand.Parameters.Add(parWork);
OleDbParameter parNeedObj = new OleDbParameter("@needobj",OleDbType.VarChar,50);
parNeedObj.Value = NeedObj.Text.ToString();
MyCommand.Parameters.Add(parNeedObj);
OleDbParameter parNeed = new OleDbParameter("@need",OleDbType.VarChar,255);
            parNeed.Value = Need.Text.ToString();
MyCommand.Parameters.Add(parNeed);
提示也还是INSERT INTO语法错误,大家帮我看看这两个语句语法那里错误了

解决方案 »

  1.   

    改成
    MyCommand = new OleDbCommand("insert into job(title,time,department,name,tel,add,add1,schoolage,sex,specialty,work,needobj,need) values(?,?,?,?,?,?,?,?,?,?,?,?,?)",MyConn);
      

  2.   

    用中括号括住字段啊
    比如[name],[pwd],
    因为可能会有关键字的
    比如user就是关键字,会报错,[user]就ok
      

  3.   

    改成:MyCommand = new OleDbCommand("insert into job(title,time,department,name,tel,add,add1,schoolage,sex,specialty,work,needobj,need) values(?,?,?,?,?,?,?,?,?,?,?,?,?)",MyConn);
    如果还不行就调试跟踪一下,把sql语句获得去查询分析器执行一下
      

  4.   

    values('@title,@time,@department,@name,@tel,@add,@add1,@schoolage,@sex,@specialty,@work,@needobj,@need')",MyConn);
    insert语句是
    insert into job (a,b)values("a,b")
      

  5.   

    MyCommand = new OleDbCommand("insert into job(title,time,department,name,tel,add,add1,schoolage,sex,specialty,work,needobj,need) values(?,?,?,?,?,?,?,?,?,?,?,?,?)",MyConn);按这个形式去试试看。
      

  6.   

    先试试这样
    MyCommand = new OleDbCommand("insert into [job]([title],[time],[department],[name],[tel],[add],[add1],[schoolage],[sex],[specialty],[work],[needobj],[need]) values('"+Job.Text+"','"+Time.Text+"','"+Department.Text+"','"+Name.Text+"','"+Tel.Text+"','"+Add.Text+"','"+Add1.Text+"','"+Schoolage.Text+"','"+sex.Text+"','"+Specialty.Text+"','"+Work.Text+"','"+NeedObj.Text+"','"+Need.Text+"')",MyConn);
    不行的话,看看你的这写textbox里面是不是有单引号