C#与SQL命令中单引号字符串的不同效果
来源:互联网 发布:电脑声控软件 编辑:程序博客网 时间:2024/06/05 18:07
C#中执行含单引号字符串的SQL命令
SQL命令:string selectCmd="select * from score where name='"+textBox1.Text+"'";
当在 textBox1中直接输入含单引号的字符串查询会报异常.
原因:SQL会将单引号括住的数据视为字符串,而双引号括住的数据,则被C#.NET视为字符串处理
如:
string selectCmd="select * from score where name='"+"ab'c"+"'";
C#.NET编译完成后成为:
select * from score where name='ab'c'
SQL语法执行时,将ab视为字符串(ab被单引号括住),而c'的数据因为前面少了一个单引号而发生错误.
解决方法:
在SQL语法中将连续两个单引号"''"视为一个单引号,所以可以使用String类的Replace方法将字符串中的一个
单引号换为两个单引号。
如:
string selectCmd="select * from tbname where fieldname='"+textBox1.Text+"'";
改为:
string selectCmd="select * from tbname where fieldname='"+textBox1.Text.Replace("'","''")+"'";
例子:
比较以下语句:
string sql0 = " INSERT INTO tbBattery_InfoD(Battery_Voltagedouble,Battery_Electricaldouble,Battery_Datedtm) VALUES("+ dataGridView1.Rows[iCCC + 1].Cells[2].Value.ToString() + "," + dataGridView1.Rows[iCCC + 1].Cells[5].Value.ToString() + "," + "'" + datetime + "'" + ")";
string sql1 = " INSERT INTO tbBattery_InfoD(Battery_Voltagedouble,Battery_Electricaldouble,Battery_Datedtm) VALUES("+ dataGridView1.Rows[iCCC + 1].Cells[2].Value.ToString() + "','" + dataGridView1.Rows[iCCC + 1].Cells[5].Value.ToString() + "'," + "'" + datetime + "'" + ")";
Battery_Voltagedouble和Battery_Electricaldouble字段设为float,dataGridView1.Rows[iCCC + 1].Cells[5].Value.ToString() 和dataGridView1.Rows[iCCC + 1].Cells[5].Value.ToString()为空时,第一个语句语句出现错误,第二个语句可以执行,插入值为0.
- C#与SQL命令中单引号字符串的不同效果
- SQL中单引号与双引号的区别
- php中单引号字符串与双引号字符串的区别
- PHP的字符串中单引号与双引号的区别
- PHP的字符串中单引号与双引号的区别
- C#中 sql 字符串命令注意的地方
- 字符串中单引号的应用
- mysql 与oralce中插入有单引号的字符串
- Linux shell命令中双引号与单引号嵌套的问题
- sql与js中单引号问题
- python字符串单引号与双引号的区别
- javascript字符串单引号与双引号的区别
- flash与字符串:双单引号的中文
- Javascript字符串单引号与双引号的区别
- C++中单引号“字符串”的用法
- C++中单引号“字符串”的用法
- php单引号中字符串的转义("\")
- php单引号中字符串的转义(\"\\\")
- 在 Redhat6.2 上安装 Oracle 11gR2 -- VMware + ASM
- C语言宏的高级用法
- c/c++面试题汇总(2)
- icanhazip.com 使你在任何地方知道你的公网IP地址
- 为程序员开一剂提高职业素养的良方
- C#与SQL命令中单引号字符串的不同效果
- Oracle 行列转换
- IPhone开发工具篇-利用xcode profile和analyze进行性能优化
- C#中Append的用法
- 项目优化经验分享(五)站在全局看问题
- leetcode 第一题 two sum
- 项目优化经验分享(六)SVN冲突和处理
- poj 2299
- Linux crontab命令