insert into T_MIS_USER(id,name,englishname,sex,age,birthday,sfzh,gwdm,bmdm,gddh,yddh,msn,qqhm,email,address,dqdm,csdm,sfdm,gjdm,cjrq,lrry,py,wb,pwd,groupid,yxksrq,yxjsrq,jlzt,memo) 
values( '6464','3456456','','',25,'2008-4-19','','','','','','','','','','','','','','2008-4-19','0000','','','07UbsQt49JcoKPOvU0pWlg==',0,'2008-1-1','2108-1-1',0,'')这段语句,我直接在access 2007中查询设计中能插入,并不报错。
但是我用c#前台程序调用,就报insert语句语法错误。//c#中
OleDbConnection aAccessConnection = new OleDbConnection();
string aStrConn = "Provider=Microsoft.Jet.OleDb.4.0;";
aStrConn += "Data Source=c:\test.mdb";aAccessConnection.Close();
aAccessConnection.ConnectionString = aStrConn;
aAccessConnection.Open();OleDbCommand aAccessCommand = new OleDbCommand();
aAccessCommand.Connection = aAccessConnection;
aAccessCommand.CommandText = aStrSql;
int i_count = aAccessCommand.ExecuteNonQuery();
T_MIS_USER表的字段除了age
,groupid,jlzt是数值,其他都是“备注”类型。

解决方案 »

  1.   

    aAccessCommand.CommandText = aStrSql; 
    aStrSql=?
      

  2.   

    我估计是你在程序中用sql语句的时候缺少转译
      

  3.   

    string InsertSql = "Insert into UserTable(ID,UserName,UserPswd) VALUES('100','test','123456')";你看下,是不是对应的问题
      

  4.   


    --把 
    insert into T_MIS_USER(id,name,englishname,sex,age,birthday,sfzh,gwdm,bmdm,gddh,yddh,msn,qqhm,email,address,dqdm,csdm,sfdm,gjdm,cjrq,lrry,py,wb,pwd,groupid,yxksrq,yxjsrq,jlzt,memo)  
    values( '6464','3456456','','',25,'2008-4-19','','','','','','','','','','','','','','2008-4-19','0000','','','07UbsQt49JcoKPOvU0pWlg==',0,'2008-1-1','2108-1-1',0,'') 
    --转成类似下面的样子
    string sql = "select \"Content\" from \"LaborRight\" WHERE \"ID\"=" + PeccancyID + " FOR UPDATE";
      

  5.   

    直接在access 2007中查询设计中能插入,并不报错。
    一定不是对应的问题
      

  6.   


    aStrSql 当然等于我上面那sql语句了,那是断点跟踪出来的。--把 
    insert into T_MIS_USER(id,name,englishname,sex,age,birthday,sfzh,gwdm,bmdm,gddh,yddh,msn,qqhm,email,address,dqdm,csdm,sfdm,gjdm,cjrq,lrry,py,wb,pwd,groupid,yxksrq,yxjsrq,jlzt,memo)  
    values( '6464','3456456','','',25,'2008-4-19','','','','','','','','','','','','','','2008-4-19','0000','','','07UbsQt49JcoKPOvU0pWlg==',0,'2008-1-1','2108-1-1',0,'') 
    --转成类似下面的样子
    string sql = "select \"Content\" from \"LaborRight\" WHERE \"ID\"=" + PeccancyID + " FOR UPDATE";这个还真没看明白。
      

  7.   

    string sql=@"insert into T_MIS_USER(id,name,englishname,sex,age,birthday,sfzh,gwdm,bmdm,gddh,yddh,msn,qqhm,email,address,dqdm,csdm,sfdm,gjdm,cjrq,lrry,py,wb,pwd,groupid,yxksrq,yxjsrq,jlzt,memo) 
    values( '6464','3456456','','',25,'2008-4-19','','','','','','','','','','','','','','2008-4-19','0000','','','07UbsQt49JcoKPOvU0pWlg==',0,'2008-1-1','2108-1-1',0,'') "
      

  8.   

    string aStrSql = @"insert into T_MIS_USER(id,name,englishname,sex,age,birthday,sfzh,gwdm,bmdm,gddh,yddh,msn,qqhm,email,address,dqdm,csdm,sfdm,gjdm,cjrq,lrry,py,wb,pwd,groupid,yxksrq,yxjsrq,jlzt,memo) 
    values( '6464','3456456','','',25,'2008-4-19','','','','','','','','','','','','','','2008-4-19','0000','','','07UbsQt49JcoKPOvU0pWlg==',0,'2008-1-1','2108-1-1',0,'') 
    "
    试一下
      

  9.   

    我估计你的字段中的ID在Access中是关键字,虽然在access 2007中查询设计中能插入,但就是不能在程序中用。
    把你的表名,列名都用[]括起来,应该就没问题了!
    我曾经遇到 select * from user这句话报错,一样在access查询设计中能执行,不能在程序中执行,改成 select * from [user]就没问题了估计你也是这样的问题