文章教程

9.4SqlParameter对象

8/31/2020 9:19:23 PM 人评论 次浏览

9.4 SqlParameter对象

一般来说,在更新DataTable或者是DataSet时,如果不采用SqlParameter对象,那么当输入的SQL语句出现歧义时,如字符串中含有单引号,程序就会发生错误,而且其他人可以轻易通过拼接SQL语句来进行注入攻击。

SqlParameter对象表示SqlCommand的参数,也可以是它到DataSet列的映射。SqlParameter类不能被继承。

9.4.1 创建SqlParameter对象

创建SqlParameter对象有两种方法:一种是使用SqlCommand对象的CreateParameter()方法;第二种是使用new关键字。通过new关键字创建SqlParameter对象时,SqlParameter对象有7种构造函数,常用的两种形式如下。

    SqlParameter para = new SqlParameter();
    SqlParameter para = new SqlParameter(string parameterName, object value);

使用第二种构造形式时需要传入两个参数,parameterName指定参数名,它是在SQL语句里要替换掉的名称;value表示一个任意数据库支持的类型对象,具体的类型系统自动判断。

【范例7】

创建SqlParameter对象,并在创建时指定参数名和参数值。代码如下。

    SqlParameter para = new SqlParameter("@username", "张三");

9.4.2 SqlParameter对象的属性

SqlParameter对象包含一系列的属性和方法,如表9-7所示列举了该对象的常用属性。

表9-7 SqlParameter对象的常用属性

【范例8】

定义SqlParameter类型的数组,然后遍历该数组。在foreach语句进行遍历时,通过ParameterName获取参数的名称,SqlValue获取参数的值。代码如下。

    SqlParameter[] parm = new SqlParameter[]{  //定义SqlParameter类型数组
        new SqlParameter("name1", "张云"),       //为指定变量赋值
        new SqlParameter("name2", "许飞"),
        new SqlParameter("name3", "李遥遥"),
    };
    foreach (SqlParameter item in parm) {
        Response.Write("获取到的SqlParameter对象的名称:" + item.ParameterName+
        "<br/>");
        Response.Write("获取到作为SQL类型参数的值:" + item.SqlValue+"<br/>");
        Response.Write("==========================================<br/>");
    }

教程类别