鄙人用C#写了一个插入MySql的系统服务,在插入数据时莫名其妙的在SQL语句中加入了转义字符“\”,这是什么问题?亲赐教。 // 实例化数据库连接字符串对象 // 实例化数据库连接对象 // 打开数据库连接 // 建立事物 // MySql字符编码设定 // 插入项目信息语句设定 wMySqlCmd.Parameters.Add(“?PROJECT_ID”, DbType.String); wMySqlCmd.Parameters[“?PROJECT_ID”].Value = dsCRMData.Tables[0].Rows[wCRMRowIndex][“PROJECTID”].ToString().Replace(@””, @”\”); /*值:GZG140082*/ wMySqlCmd.Transaction = mMySQLTrans; // 插入 LIST 表 生成的SQL语句:INSERT INTO YUSUAN_PROJECT_LIST SET PROJECT_ID = “”GZG140082″”, COMMENT = “”‐\”” |
|
40分 |
wMySqlCom = new MySQLCommand(“set names gbk“, wMySqlConn);
既然你使用的是 GBK 字符集,那么就应该知道以下字符 乗 俓 僜 刓 匼 哱 嘰 圽 塡 奬 媆 孿 峔 嶾 廫 怽 慭 抃 揬 擻 昞 朶 梊 榎 橽 歕 沑 淺 漒 瀄 焅 燶 猏 玕 琝 璡 甛 痋 癨 盶 瞈 砛 碶 礬 禱 穃 竆 筡 篭 籠 糪 絓 綷 縗 繺 羂 耚 肻 腬 臷 芢 荺 萛 蒤 蔦 薥 蘚 蚛 蝄 蟎 衆 裓 襖 覾 診 誠 謀 譢 豛 賊 赲 踈 躙 輁 轡 運 郳 醆 鈂 鉢 鋅 錦 鎈 鏫 鑌 閈 闬 隲 靄 韁 頫 颸 餦 馶 騖 骪 鬨 鮘 鯸 鱘 鳿 鵟 鶿 鸤 黒 齖 内码的第二个字节为 0x5c 即 \ 你有 .Replace(@””, @”\”) 的操作,很自然的就将本属于中文字符的 0x5c 也一并替换了 MySQL 只需转义单引号,只需 Replace(@”‘”, @”\’”) 即将 “” 替换成 \”” 即可 |
我将语句改为:
wMySqlCmd.Parameters[“?PROJECT_ID”].Value = dsCRMData.Tables[0].Rows[wCRMRowIndex][“PROJECTID”].ToString().Replace(“”””, “\”””); wMySqlCmd.Parameters[“?COMMENT”].Value = dsCRMData.Tables[0].Rows[wCRMRowIndex][“BEIZHU”].ToString().Replace(“”””,”\”””); 可最后他还是加上了 “\” |
|
问题解决,谢谢版主的提醒。
我将全角的“-”替换为半角“-”,插入数据成功。 |