前言
今天我在理三层逻辑的时候,看到了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();
conn.ConnectionString = "Data Source=数据库连接部分";//连接字符串与数据库有关
SqlCommand cmd = new SqlCommand