例如:在sql脚本语句中,字符串用单引号'',这些在C#语句中拼接"sql语句"字符串时需要注意.
你可以在vs.net中写一个用字符串拼接的sql语句,最后把它赋值给一个字符串对象.然后用断点调试区查看生成的sql语句的结果,一般sql语句较长,验证的方式都是把这段sql语句copy到sql sever的脚本文件(.sql)中去执行一下,就知道是否正确了.当然也有先在sql server 中调试好拼接字符串后再copy到程序代码中去修改的.具体方式不定.
(以上是介绍的拼接sql语句方法,不过这种方式的安全性不高,常见的sql注入式攻击就是利用的拼接sql语句的缺陷.)
你还可以考虑使用带参数的存储过程来实现,这个就需要了解存储过程的一些知识了,具体的方法我就不介绍了,关于带参数的存储过程,网上有很多例子参考.
在vc对数据库执行各种 *** 作的过程中,直接使用sql语言查询往往是很方便的,但有时候要执行复杂的查询时,需要往sql语句中传递各种参数,比如系统时间、日期,查询的约束条件等等。例如要执行一个有日期约束的查询,最简单的方法就是:定义一个变量 CString kk("")kk.format("select * from V_SUM_TERM_POWER WHERE MEASURE_TIME =TO_DATE('"+time1+"','YYYY-MM-DD')")//其中TO_DATE('"+time1+"','YYYY-MM-DD')为一个字符串转日期的函数,time1为CString类型的日期变量,"+time1+"表示传入的参数。SQL模糊查询,使用like比较字,加上SQL里的通配符,请参考以下:--1、LIKE'Mc%' 将搜索以字母 Mc 开头的所有字符串(如 McBadden)。
--2、LIKE'%inger' 将搜索以字母 inger 结尾的所有字符串(如 Ringer、Stringer)。
--3、LIKE'%en%' 将搜索在任何位置包含字母 en 的所有字符串(如 Bennet、Green、McBadden)。
--4、LIKE'_heryl' 将搜索以字母 heryl 结尾的所有六个字母的名称(如 Cheryl、Sheryl)。
--5、LIKE'[CK]ars[eo]n' 将搜索下列字符串:Carsen、Karsen、Carson 和 Karson(如 Carson)。
--6、LIKE'[M-Z]inger' 将搜索以字符串 inger 结尾、以从 M 到 Z 的任何单个字母开头的所有名称(如 Ringer)。
--7、LIKE'M[^c]%' 将搜索以字母 M 开头,并且第二个字母不是 c 的所有名称(如MacFeather)。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)