sqlParameter的使用------七个构造函数

sqlParameter对象的作用是将要用于操作数据库的数据(如根据ID查询时要用到id)以参数的形式加入到sql语句中,防止因为拼接字符串而引起的安全问题并且提高可读性。所以使用是要先创建一个sqlParameter对象,在定义时或定义后(取决于创建时调用的哪一个构造函数)将数据绑定到参数。在执行操作之前,用SQLcommand.Parameter的Add方法(单个SQLparameter对象)或AddRange方法(SQLparameter数组)将SQLparameter对象加到字符串中即可执行。

本文主要罗列了下SQLparameter的七个构造函数

1、

public SqlParameter();

无参构造函数

2、

public SqlParameter(string parameterName, SqlDbType dbType);

参数:
          parameterName:要映射的参数的名称

          dbType:System.Data.SqlDbType 值之一,SqlDbType是一个枚举类型的变量,其所有的值为:

 //
    // 摘要:
    //     指定 SQL Server 特定数据类型的字段、 属性,用于 System.Data.SqlClient.SqlParameter。
    public enum SqlDbType
    {
        //
        // 摘要:
        //     System.Int64。 64 位带符号整数。
        BigInt = 0,
        //
        // 摘要:
        //     System.Array类型System.Byte。 固定长度流,范围在 1 到 8000 个字节之间的二进制数据。
        Binary = 1,
        //
        // 摘要:
        //     System.Boolean。 无符号的数字值,可为 0,1,或 null。
        Bit = 2,
        //
        // 摘要:
        //     System.String。 范围在 1 到 8000 个字符之间的非 Unicode 字符固定长度流。
        Char = 3,
        //
        // 摘要:
        //     System.DateTime。 日期和时间数据,值范围从 1753 年 1 月 1 日至 12 月 31 日,精确到 3.33 毫秒到 9999。
        DateTime = 4,
        //
        // 摘要:
        //     System.Decimal。 固定的精度和小数位数之间的数值范围为-10 38 -1 和 10 38 -1。
        Decimal = 5,
        //
        // 摘要:
        //     System.Double。 浮点数,范围在-1.79 e + 308 到 1.79 e + 308 之间。
        Float = 6,
        //
        // 摘要:
        //     System.Array类型System.Byte。 范围从 0 到 2 的二进制数据的长度可变的流 31 -1 (或者 2147483647) 字节。
        Image = 7,
        //
        // 摘要:
        //     System.Int32。 32 位带符号整数。
        Int = 8,
        //
        // 摘要:
        //     System.Decimal。 货币值,范围从-2 63 (即-9223372036854775808) 到 2 63 -1 (或 9223372036854775807),精确到货币单位的万分之一。
        Money = 9,
        //
        // 摘要:
        //     System.String。 范围在 1 到 4000 个字符之间的 Unicode 字符的固定长度流。
        NChar = 10,
        //
        // 摘要:
        //     System.String。 最大长度为 2 Unicode 数据的长度可变的流 30 -1 (或者 1073741823) 个字符。
        NText = 11,
        //
        // 摘要:
        //     System.String。 范围在 1 到 4000 个字符之间的 Unicode 字符长度可变的流。 如果字符串大于 4000 个字符,隐式转换将失败。
        //     使用字符串长度超过 4000 个字符时,请显式设置对象。 使用 System.Data.SqlDbType.NVarChar 数据库列时 nvarchar(max)。
        NVarChar = 12,
        //
        // 摘要:
        //     System.Single。 浮点数,范围在-3.40 e + 38 到 3.40 e + 38 之间。
        Real = 13,
        //
        // 摘要:
        //     System.Guid。 全局唯一标识符 (或 GUID) 中。
        UniqueIdentifier = 14,
        //
        // 摘要:
        //     System.DateTime。 数值范围从 1900 年 1 月 1 日到 2079 年 6 月 6 日精度为一分钟的日期和时间数据。
        SmallDateTime = 15,
        //
        // 摘要:
        //     System.Int16。 16 位带符号整数。
        SmallInt = 16,
        //
        // 摘要:
        //     System.Decimal。 一个范围从-214,748.3648 到 +214,748.3647,精确到货币单位的万分之一的货币值。
        SmallMoney = 17,
        //
        // 摘要:
        //     System.String。 最大长度为 2 的非 Unicode 数据的变量长度流 31 -1 (或者 2147483647) 个字符。
        Text = 18,
        //
        // 摘要:
        //     System.Array类型System.Byte。 自动生成二进制数字,保证在数据库中是唯一。 timestamp 通常用作为表行加版本戳的机制。 存储大小为
        //     8 个字节。
        Timestamp = 19,
        //
        // 摘要:
        //     System.Byte。 8 位无符号整数。
        TinyInt = 20,
        //
        // 摘要:
        //     System.Array类型System.Byte。 范围在 1 到 8000 个字节之间的二进制数据长度可变的流。 如果字节数组大于 8000 个字节,隐式转换将失败。
        //     在使用字节数组大于 8000 个字节时,请显式设置对象。
        VarBinary = 21,
        //
        // 摘要:
        //     System.String。 范围在 1 到 8000 个字符之间的非 Unicode 字符长度可变的流。 使用 System.Data.SqlDbType.VarChar
        //     数据库列时 varchar(max)。
        VarChar = 22,
        //
        // 摘要:
        //     System.Object。 可以包含数值的特殊数据类型,字符串、 二进制文件中,或日期数据,以及 SQL Server 值的空和 Null,这将假定如果没有其他声明类型。
        Variant = 23,
        //
        // 摘要:
        //     XML 值。 获取将 XML 作为字符串使用 System.Data.SqlClient.SqlDataReader.GetValue(System.Int32)
        //     方法或 System.Data.SqlTypes.SqlXml.Value 属性,或指定为 System.Xml.XmlReader 通过调用 System.Data.SqlTypes.SqlXml.CreateReader
        //     方法。
        Xml = 25,
        //
        // 摘要:
        //     一个 SQL Server 用户定义类型 (UDT)。
        Udt = 29,
        //
        // 摘要:
        //     用于指定包含在表值参数中的结构化的数据的特殊数据类型。
        Structured = 30,
        //
        // 摘要:
        //     日期数据,从 1 月的值范围为 1,1 AD 到公元 9999 年 12 月 31 日。
        Date = 31,
        //
        // 摘要:
        //     基于 24 小时制时间数据。 时间值范围是 00:00:00 到 23:59:59.9999999 100 纳秒精度。 对应于 SQL Server time
        //     值。
        Time = 32,
        //
        // 摘要:
        //     日期和时间数据。 日期值范围是从 1 月 1,1 AD 到公元 9999 年 12 月 31 日。 时间值范围是 00:00:00 到 23:59:59.9999999
        //     100 纳秒精度。
        DateTime2 = 33,
        //
        // 摘要:
        //     时区的日期和时间数据。 日期值范围是从 1 月 1,1 AD 到公元 9999 年 12 月 31 日。 时间值范围是 00:00:00 到 23:59:59.9999999
        //     100 纳秒精度。 时区值范围是-14:00 至 + 14:00。
        DateTimeOffset = 34
    }

3、

public SqlParameter(string parameterName, object value);

 parameterName: 要映射的参数的名称。
 value:   作为 System.Object 的值的 System.Data.SqlClient.SqlParameter。即映射参数的值。

4、

public SqlParameter(string parameterName, SqlDbType dbType, int size);

与 2 的区别,多了一个int类型的参数,表示参数值的长度

5、

public SqlParameter(string parameterName, SqlDbType dbType, int size, string sourceColumn);

与4相比多了个string类型的参数sourceColumn,表示源列名 (System.Data.SqlClient.SqlParameter.SourceColumn)(如果在调用 Overload:System.Data.Common.DbDataAdapter.Update中使用了此 System.Data.SqlClient.SqlParameter)。

6、

public SqlParameter(string parameterName, SqlDbType dbType, int size, ParameterDirection direction, bool isNullable, byte precision, byte scale, string sourceColumn, DataRowVersion sourceVersion, object value);

7、

public SqlParameter(string parameterName, SqlDbType dbType, int size, ParameterDirection direction, byte precision, byte scale, string sourceColumn, DataRowVersion sourceVersion, bool sourceColumnNullMapping, object value, string xmlSchemaCollectionDatabase, string xmlSchemaCollectionOwningSchema, string xmlSchemaCollectionName);

 

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值