黑马程序员之ADO.NET学习笔记:SqlParameter(Sql参数)

本文详细介绍了ADO.NET中的SqlParameter对象,包括设置参数名、值、大小和类型的方法。讲解了如何通过AddWithValue、Add和AddRange等方式向命令对象添加参数,并探讨了SqlParameterCollection参数集合的操作。此外,还展示了如何定义输出参数以获取存储过程的返回值。

-------------------------------------------------2345王牌技术员联盟2345王牌技术员联盟、期待与您交流!-------------------------------------------------------

1. 几个重要的属性    

     ParameterName设置参数名

     Value给参数设置值

     Size:设置参数字节最大大小(以字节为单位)

     SqlDbType:参数在SQL中的类型  


SqlParameter paras =new SqlParameter()

{

             ParameterName ="@name",

             Value =10,

             SqlDbType = SqlDbType.Int,

             Size =4

};

2.命令对象添加参数集合的几种方法

AddWithValue

Add

AddRange

 using (SqlConnection connection =new SqlConnection(""))

  {

        SqlCommand command = connection.CreateCommand();

        command.CommandText ="";

 

       //可以使用这种方式添加多个参数,不过方式不够好

        command.Parameters.Add("@name", SqlDbType.NVarChar).Value = "Tom"; //第一种方式

        command.Parameters.Add("@age",SqlDbType.Int).Value = 888;

        command.Parameters.Add("@address", SqlDbType.NVarChar,100).Value ="Beijing";


       //这种方式直接给定参数名和参数就可以了,可操作性比较差

        command.Parameters.AddWithValue("@name","Tom");

        command.Parameters.AddWithValue("@age",888).SqlDbType = SqlDbType.Int;

        command.Parameters.AddWithValue("@address","Beijing").SqlDbType = SqlDbType.NVarChar;


       //直接使用参数集合添加你需要的参数,推荐这种写法

        SqlParameter[] parameters =new SqlParameter[]

     {

         new SqlParameter("@name",SqlDbType.NVarChar,100){Value = "Tom"},

         new SqlParameter("@age",SqlDbType.Int,2){Value = 888},

         new SqlParameter("@address",SqlDbType.NVarChar,20){Value = "Beijing"},

     };

     command.Parameters.AddRange(parameters); //参数也可以是一个Array数组,如果采用数组参数代码的可读性和扩展性就不是那么好了


     //当我们把参数都添加好之后,会生成一个“SqlParameterCollection”集合类型,相当于参数的集合

     //那么我们就可以对这些参数进行修改和移除了

     //说穿了“SqlParameterCollection”内部其实是一个List<SqlParameter>的集合,只是它里面的复杂度比较高,考虑的很全面

     command.Parameters[0].Value ="Tom";

     command.Parameters[0].Size =200;

  }

3.说说“SqlParameterCollection”,参数集合

     上面添加的“SqlParameter”参数都被添加到了“SqlParameterCollection”集合中去了,所以我们才能够对它进行读取和修改!

4.定义适当的参数属性获取存储过程的返回值(return) → Direction = ParameterDirection.Output

  using (SqlConnection conn =new SqlConnection(""))

  {

      conn.Open();

      SqlCommand cmd = conn.CreateCommand();

       cmd.CommandText ="myProc";

       cmd.CommandType = CommandType.StoredProcedure;

       SqlParameter[] paras =new[] //定义参数数组

     {

          new SqlParameter("@Description",SqlDbType.NVarChar,50,"RegionDescription"),

         new SqlParameter("@RegionID",SqlDbType.Int,0,ParameterDirection.Output,false,0,0,"RegionID",DataRowVersion.Default,null)       //定义此参数是Output参数

     };

     cmd.Parameters.AddRange(paras);

     cmd.UpdatedRowSource = UpdateRowSource.OutputParameters;//这句话可以不要

    //给参数赋值

     cmd.Parameters["@Description"].Value ="Tom";

     cmd.ExecuteNonQuery();

     //获取返回值

     int myRegionID = (int)cmd.Parameters["@RegionID"].Value;

     Console.WriteLine("这是返回值:{0}", myRegionID.ToString());

  }


---------------------------------------------------2345王牌技术员联盟2345王牌技术员联盟、期待与您交流!---------------------------------------------------------


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值