java、C#中Sql语句传参的写法及意义
来源:互联网 发布:淘宝密令怎么得 编辑:程序博客网 时间:2024/05/17 22:30
Sqlserver这东西没少跟他打交道,刚学开发语言时就已经跟他接触了,不要说很精通,但就语法还算是熟悉,但现在开始写C#,发现很C#多了一种SqlServer的参数传入方式,以往我们常常对要传参的Sql语句都是直接通过拼凑Sql语句的方式来实现,但现在C#为什么要专门做一个Sql参数的类来实现呢,经过查找才知道,这样做是有道理的,一是可以优化SQL语句(在oracle的教程的类似的传参SQL语句是只会预编译一次,无论传入多少次参数,都只编译一次,这样是可以优化同一SQL语句频繁使用的情况,SQLSERVER中不知道有没这方面的优化,Sqlserver的存储过程只要有传入参,是不会一次编译的是多次编译......),二是可以检查传入参的数据类型,过滤非法字符...这样可以有效阻止SQL的注入式破解.具体写法如下.
C#:
java:
后补于2013/08/15:
最近由于服务器不支持SqlConnection,又没法打补丁,所以使用OdbcConnection来进行连接数据库的操作,但在应用传参语句时出现如下问题:
语句:
string jsry = dr1["Ryzd_Ry_F"].ToString().Trim(); //接收人员sqlse1 = "Insert Into Alarm_Bjxxb(Type_F,Ryzd_Js_F,SendTime_F,Content_F,DisPlay_F,Bz_F,LinkKey_F)" +" values('客户证照近效期',@p1,getDate(),@p2,'1','','"+serName+"')";sqlCmd = new OdbcCommand(sqlse1, conn);OdbcParameter par1 = new OdbcParameter("@p1", jsry);sqlCmd.Parameters.Add(par1);OdbcParameter par2 = new OdbcParameter("@p2", xmlString);sqlCmd.Parameters.Add(par2);sqlCmd.ExecuteNonQuery();
执行时错误提示如下:
[SQL Server] 必须声名变量 @p1
苦找了N久最后在网上发现,要把@p1,@p2改为?后才可正常执行,晕啊!
修改后Sqlse1如下:
sqlse1 = "Insert Into Alarm_Bjxxb(Type_F,Ryzd_Js_F,SendTime_F,Content_F,DisPlay_F,Bz_F,LinkKey_F)" +" values('客户证照近效期',?,getDate(),?,'1','','"+serName+"')";
- java、C#中Sql语句传参的写法及意义
- C#中SQL语句的参数写法
- c#中sql语句中传递Like参数的写法
- C#中SQL语句参数写法
- C#中SQL语句参数写法
- C#中SQL语句参数写法
- c#中SQL语句参数标准写法
- java中String...这种写法的意义
- java面试中关于学员一些sql语句的写法
- Java的SQL语句的写法小结
- access 中sql语句之“like” 语句的注意写法
- 解析SQL语句中INSERT语句的另一种写法
- access 中sql语句之“like” 语句的注意写法
- SQL语句的写法:update语句中 case...when 用法
- Java中for语句的新写法
- C#连接acces数据库的sql语句正确写法
- T-SQL中执行sql语句的两种写法
- ACCESS 日期查询及操作SQL语句的写法
- 在WEB开发中的一个小细节问题==主要是自己调试的时候,诸如javascript(js)不起作用
- 关于端口和进程的映射
- 计算机高手是怎么炼成的
- Java 6 中自带的 Java DB(derby) 数据库
- vs2008自带的sqlserver2005连接问题
- java、C#中Sql语句传参的写法及意义
- linux系统时间设置
- RHEL5中使用yum更新源的方法
- 今天我也入住csdn博客了
- C#实现重启、关机、开关显示器的方法
- Solaris5.9安装日志
- linux 论坛
- pku2635 The Embarrassed Cryptographer
- PHP与MYSQL的存储过程