C#中\0導致拼接字符串無效


sql += "'" + col.Table.Rows[tabParams.Rownum][col.Ordinal].ToString()+ "',";

使用for循環對SQL語句進行拼接的時候,循環到某個字段,不管怎么自加字符串的值都不變,得到的SQL語句是不完整的,如下

insert into jk_sample (FBMMC,FGZJH,FSBMC,FSBBH,FSBXH,x_Number,x_Name,x_Method,Weight,Moisture,SulfurArea,SulfurPeak,SulfurTime,Stad,Std,x_Date,x_Operator,Memo,initVolt,lparam,x,y) 

values('化學室','222','全自動測硫儀','03','5E-IRS3600','20200226045','A0588782','20191210','0.2968','0.68','3.32760320899911','0.105281323418624','154','2.47854333257062','2.47854333257062','2020/2/26 18:05:40','

后來查了一些網上的資料得知\0代表字符串的終止,而循環到的那個字段值就是\0。

C#對字符串自加,末尾出現\0,就會終止對此字符串的所有操作

因此需要將\0字符替換掉,就可以對字符串正常操作了

sql += "'" + col.Table.Rows[tabParams.Rownum][col.Ordinal].ToString().Replace("\0","") + "',";
insert into jk_sample (FBMMC,FGZJH,FSBMC,FSBBH,FSBXH,x_Number,x_Name,x_Method,Weight,Moisture,SulfurArea,SulfurPeak,SulfurTime,Stad,Std,x_Date,x_Operator,Memo,initVolt,lparam,x,y) 

values('化學室','222','全自動測硫儀','03','5E-IRS3600','20200226045','A0588782','20191210','0.2968','0.68','3.32760320899911','0.105281323418624','154','2.47854333257062','2.47854333257062','2020/2/26 18:05:40',' ','','8.563','217',:IMAGEDATA,:IMAGEDATA)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM