java、C#中Sql语句传参的写法及意义
2010-03-15 16:29
295 查看
Sqlserver这东西没少跟他打交道,刚学开发语言时就已经跟他接触了,不要说很精通,但就语法还算是熟悉,但现在开始写C#,发现很C#多了一种SqlServer的参数传入方式,以往我们常常对要传参的Sql语句都是直接通过拼凑Sql语句的方式来实现,但现在C#为什么要专门做一个Sql参数的类来实现呢,经过查找才知道,这样做是有道理的,一是可以优化SQL语句(在oracle的教程的类似的传参SQL语句是只会预编译一次,无论传入多少次参数,都只编译一次,这样是可以优化同一SQL语句频繁使用的情况,SQLSERVER中不知道有没这方面的优化,Sqlserver的存储过程只要有传入参,是不会一次编译的是多次编译......),二是可以检查传入参的数据类型,过滤非法字符...这样可以有效阻止SQL的注入式破解.具体写法如下.
C#:
后补于2013/08/15:
最近由于服务器不支持SqlConnection,又没法打补丁,所以使用OdbcConnection来进行连接数据库的操作,但在应用传参语句时出现如下问题:
语句:
执行时错误提示如下:
[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+"')";
C#:
PreparedStatement pstmt = con.prepareStatement("Insert into Spdj(Message,TypeCode) Values(?,?); pstmt.setString(1, "Hi"); pstmt.setInt(2, 2001); pstmt.execute();
后补于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+"')";
相关文章推荐
- [转]C#中SQL语句参数写法。
- c#中sql语句中传递Like参数的写法
- C#中SQL语句的参数写法
- C#中SQL语句参数写法
- C#连接acces数据库的sql语句正确写法
- C#中SQL语句参数写法
- C#连接access数据库包含数值类sql语句的正确写法
- c#中SQL语句参数标准写法
- Java的SQL语句的写法小结
- C#中SQL语句参数写法
- 【JAVA与C#比较】SQL语句操作数据库
- 12-C#中SQL语句参数写法 orcale
- 数据库表某几列的列名是中文的,Java程序里面编程的SQL语句和Pl/Sql里面写法差异
- C# asp.net SQL存储过程写法Insert 插入语句,及其在asp.net中的调用方法
- java面试中关于学员一些sql语句的写法
- C#sql like语句一种正确传参方法
- C#中SQL语句参数写法
- C#中SQL语句参数写法
- C# 由数据集DataSet自动生成Insert的SQL语句集合
- 156.Oracle数据库SQL开发之 JAVA——预备SQL语句