捕获的语句如下:
update posStaff set [Pass]='\tV??浊2y?K眰\0' where StaffNo='00008' WINFORM程序中使用ACCESS数据库
程序语言C#
使用System.Data.OleDb的OleDbCommand 执行语句与ACCESS交互问题其他在该语句放在ACCESS中直接执行是成功的,不出错
而在程序中一执行就提示:
"字符串的语法错误 在查询表达式 ''\tV??浊2y?K眰' 中。"实在想不到原因,还请各位达人帮忙解惑……

解决方案 »

  1.   

    @fredrickhu
    语句换成
    "update posStaff set [Pass]=N'\tV??浊2y?K眰\0'  where StaffNo='00008' "
    依然出现错误
    "字符串的语法错误 在查询表达式 'N'\tV??浊2y?K眰' 中。"而且好象ACCESS中不支持N'
      

  2.   

    是不是不字符\有问题?
    写成
    update posStaff set [Pass]=chr(92)+'tV??浊2y?K眰'+chr(92)+'0'  where StaffNo='00008' 
    呢?
      

  3.   

    或者是问号有问题?好象?是被理解为参数的吧?
    写成@"update posStaff set [Pass]=N'\tV??浊2y?K眰\0'  where StaffNo='00008' " 呢?
      

  4.   

    @chuifengde
    原因找到了 应该是你说的第一点  字符"\"的问题我在断点中手动修改语句中"\"为"\\",执行是成功的但是在程序中用代码替换好象不成功strSql += "[Pass]='"+dr["PassWord"].ToString().Replace(@"\",@"\\")+"' ";汗死……
      

  5.   

    转义是在字符前加"\" 
    "update posStaff set [Pass]=@'\tV??浊2y?K眰\0'  where StaffNo='00008' "
    @"update posStaff set [Pass]='\tV??浊2y?K眰\0'  where StaffNo='00008' "调试时第二条语句是成功的 
    那么如何把组装的语句换成第二条类似呢
      

  6.   

    你不自己都写了replace来替换了么?
      

  7.   

    @fredrickhu
    写了替换执行依然出错
    [Pass]='"+dr["PassWord"].ToString().Replace("\\","\\\\")+"'
    [Pass]='"+dr["PassWord"].ToString().Replace(@"\",@"\\")+"'都不成功 郁闷了
      

  8.   

    @SQL77
    这个 不大清楚在c#中如何把一个字符替换成前面带@的字符
    @符号是在双引号前面 脱离了这个字符的呀
      

  9.   

    捣鼓了半天
    update posStaff set [Pass]='\tV??浊2y?K眰\0' where StaffNo='00008'这段字符中\t和\0都属于C#的转义字符 而并非"\"+"t" 还是没找到正确的方法来执行不过这属于另外的范畴了 至少在数据库的语法上找出原因了 过后结帖