捕获的语句如下:
update posStaff set [Pass]='\tV??浊2y?K眰\0' where StaffNo='00008' WINFORM程序中使用ACCESS数据库
程序语言C#
使用System.Data.OleDb的OleDbCommand 执行语句与ACCESS交互问题其他在该语句放在ACCESS中直接执行是成功的,不出错
而在程序中一执行就提示:
"字符串的语法错误 在查询表达式 ''\tV??浊2y?K眰' 中。"实在想不到原因,还请各位达人帮忙解惑……
update posStaff set [Pass]='\tV??浊2y?K眰\0' where StaffNo='00008' WINFORM程序中使用ACCESS数据库
程序语言C#
使用System.Data.OleDb的OleDbCommand 执行语句与ACCESS交互问题其他在该语句放在ACCESS中直接执行是成功的,不出错
而在程序中一执行就提示:
"字符串的语法错误 在查询表达式 ''\tV??浊2y?K眰' 中。"实在想不到原因,还请各位达人帮忙解惑……
语句换成
"update posStaff set [Pass]=N'\tV??浊2y?K眰\0' where StaffNo='00008' "
依然出现错误
"字符串的语法错误 在查询表达式 'N'\tV??浊2y?K眰' 中。"而且好象ACCESS中不支持N'
写成
update posStaff set [Pass]=chr(92)+'tV??浊2y?K眰'+chr(92)+'0' where StaffNo='00008'
呢?
写成@"update posStaff set [Pass]=N'\tV??浊2y?K眰\0' where StaffNo='00008' " 呢?
原因找到了 应该是你说的第一点 字符"\"的问题我在断点中手动修改语句中"\"为"\\",执行是成功的但是在程序中用代码替换好象不成功strSql += "[Pass]='"+dr["PassWord"].ToString().Replace(@"\",@"\\")+"' ";汗死……
"update posStaff set [Pass]=@'\tV??浊2y?K眰\0' where StaffNo='00008' "
@"update posStaff set [Pass]='\tV??浊2y?K眰\0' where StaffNo='00008' "调试时第二条语句是成功的
那么如何把组装的语句换成第二条类似呢
写了替换执行依然出错
[Pass]='"+dr["PassWord"].ToString().Replace("\\","\\\\")+"'
[Pass]='"+dr["PassWord"].ToString().Replace(@"\",@"\\")+"'都不成功 郁闷了
这个 不大清楚在c#中如何把一个字符替换成前面带@的字符
@符号是在双引号前面 脱离了这个字符的呀
update posStaff set [Pass]='\tV??浊2y?K眰\0' where StaffNo='00008'这段字符中\t和\0都属于C#的转义字符 而并非"\"+"t" 还是没找到正确的方法来执行不过这属于另外的范畴了 至少在数据库的语法上找出原因了 过后结帖