2023年6月21日发(作者:)

SqlParameter的使⽤前⾔ 今天我在理三层逻辑的时候,看到了SqlParameter。因为头⼀次看到不太懂,所以上百度⼤致了解了⼀番。SqlParameter是什么 表⽰SqlCommand的参数,以及可选的到DataSet列的映射。这个类不能被继承。(SqlCommand:表⽰要针对SQL Server数据库执⾏的Transact-SQL语句或存储过程。这个类不能被继承。DataSet:表⽰内存中的数据缓存。)SqlParameter的作⽤ sqlParameter对象的作⽤是将要⽤于操作数据库的数据(如根据ID查询时要⽤到id)以参数的形式加⼊到sql语句中,防⽌因为拼接字符串⽽引起的安全问题,并且提⾼可读性。 ⼀般来说,在更新DataTable或是DataSet时,如果不采⽤SqlParameter,那么当输⼊的Sql语句出现歧义时,如字符串中含有单引号,程序就会发⽣错误,并且他⼈可以轻易地通过拼接Sql语句来进⾏注⼊攻击。 如下代码,就存在安全性问题:string sql = "update Table1 set name = 'Pudding' where ID = '1'";//未采⽤SqlParameter

SqlConnection conn = new SqlConnection();

tionString = "Data Source=数据库连接部分";//连接字符串与数据库有关

SqlCommand cmd = new SqlCommand(sql, conn);

try

{

();

return(eNonQuery());

}

catch (Exception)

{

return -1;

throw;

}

finally

{

();

} 所以使⽤时要先创建⼀个sqlParameter对象,在定义时或定义后(取决于创建时调⽤的哪⼀个构造函数)将数据绑定到参数。在执⾏操作之前,⽤ter的Add⽅法(单个SQLparameter对象)或AddRange⽅法(SQLparameter数组)将SQLparameter对象加到字符串中即可执⾏。SqlParameter的使⽤ 常见的使⽤⽅法有两种,Add⽅法和AddRange⽅法。Add⽅法//将ID值等于1的字段name更新为Pudding(⼈名)SqlParameter sp = new SqlParameter("@name", "Pudding");

(sp);

sp = new SqlParameter("@ID", "1");

(sp);

体现在三层登录的就是如下代码:(new SqlParameter("@UserName", userName));(new SqlParameter("@Password", password)); AddRange⽅法SqlParameter[] paras = new SqlParameter[]{ new SqlParameter("@name","Pudding"),new SqlParameter("@ID","1") };ge(paras); 显然,Add⽅法再添加多个SqlParameter时不⽅便,此时,可以采⽤AddRange⽅法。 感谢阅读~

2023年6月21日发(作者:)

SqlParameter的使⽤前⾔ 今天我在理三层逻辑的时候,看到了SqlParameter。因为头⼀次看到不太懂,所以上百度⼤致了解了⼀番。SqlParameter是什么 表⽰SqlCommand的参数,以及可选的到DataSet列的映射。这个类不能被继承。(SqlCommand:表⽰要针对SQL Server数据库执⾏的Transact-SQL语句或存储过程。这个类不能被继承。DataSet:表⽰内存中的数据缓存。)SqlParameter的作⽤ sqlParameter对象的作⽤是将要⽤于操作数据库的数据(如根据ID查询时要⽤到id)以参数的形式加⼊到sql语句中,防⽌因为拼接字符串⽽引起的安全问题,并且提⾼可读性。 ⼀般来说,在更新DataTable或是DataSet时,如果不采⽤SqlParameter,那么当输⼊的Sql语句出现歧义时,如字符串中含有单引号,程序就会发⽣错误,并且他⼈可以轻易地通过拼接Sql语句来进⾏注⼊攻击。 如下代码,就存在安全性问题:string sql = "update Table1 set name = 'Pudding' where ID = '1'";//未采⽤SqlParameter

SqlConnection conn = new SqlConnection();

tionString = "Data Source=数据库连接部分";//连接字符串与数据库有关

SqlCommand cmd = new SqlCommand(sql, conn);

try

{

();

return(eNonQuery());

}

catch (Exception)

{

return -1;

throw;

}

finally

{

();

} 所以使⽤时要先创建⼀个sqlParameter对象,在定义时或定义后(取决于创建时调⽤的哪⼀个构造函数)将数据绑定到参数。在执⾏操作之前,⽤ter的Add⽅法(单个SQLparameter对象)或AddRange⽅法(SQLparameter数组)将SQLparameter对象加到字符串中即可执⾏。SqlParameter的使⽤ 常见的使⽤⽅法有两种,Add⽅法和AddRange⽅法。Add⽅法//将ID值等于1的字段name更新为Pudding(⼈名)SqlParameter sp = new SqlParameter("@name", "Pudding");

(sp);

sp = new SqlParameter("@ID", "1");

(sp);

体现在三层登录的就是如下代码:(new SqlParameter("@UserName", userName));(new SqlParameter("@Password", password)); AddRange⽅法SqlParameter[] paras = new SqlParameter[]{ new SqlParameter("@name","Pudding"),new SqlParameter("@ID","1") };ge(paras); 显然,Add⽅法再添加多个SqlParameter时不⽅便,此时,可以采⽤AddRange⽅法。 感谢阅读~