结合实例谈SqlParameters的使用

这段时间的绝大部分精力都放在SB英语上了,对计算机的学习自然就少之又少了。不过反过来想想,利用这段闲暇的时间,倒也可以好好的总结一下前面的计算机学习了。自己学到的东西如果不好好总结的话,总是不成体系,也是极容易忘记的。

今天要总结的是SqlParameters的使用方法。它其实也不是什么新的知识,最早我们在做第一个系统时就见过的,只是那时候对它的存在很不在乎罢了。


SqlParameters一共有两种方法。下面就分别将其介绍。

一、Add方法

  • 代码示例该方法每次只能添加一个SqlParameter。代码的功能是将ID值等于1的字段name更新为Pudding(人名)
  • SqlParameter sp = new SqlParameter("@name", "Pudding");
    cmd.Parameters.Add(sp);
    sp = new SqlParameter("@ID", "1");
    cmd.Parameters.Add(sp);
二、AddRange方法
  • 代码示例
  • SqlParameter[] paras = new SqlParameter[] { new SqlParameter("@name", "Pudding"), new SqlParameter("@ID", "1") };
    cmd.Parameters.AddRange(paras);
    

  • 显然,Add方法在添加多个SqlParameter时不方便,此时,可以采用AddRange方法。这便是第二种方法的优势所在了。可能上面这个例子需要传递的参数还比较少,大家还不能清楚的体会到它的优势,那么我再拿机房收费系统为例
  • 代码示例
  •  '调用注册卡的信息的存储过程
    procName = "proc_RegisterCardInfo"
    paras = New SqlParameter() {New SqlParameter("@ID", enCardInfo.ID),
    	                                    New SqlParameter("@balanceCash", enCardInfo.balanceCash),
    	                                    New SqlParameter("@operateUser", enCardInfo.operateUser),
    	                                    New SqlParameter("@status ", enCardInfo.status),
    	                                    New SqlParameter("@StudentID", enCardInfo.studentID),
    	                                    New SqlParameter("@name", enCardInfo.name),
    	                                    New SqlParameter("@sex", enCardInfo.sex),
    	                                    New SqlParameter("@department", enCardInfo.department),
    	                                    New SqlParameter("@grade", enCardInfo.grade),
    	                                    New SqlParameter("@classes", enCardInfo.classes),
    	                                    New SqlParameter("@rechargeCash", enRechargeInfo.rechargeCash),
    	                                    New SqlParameter("@lastTimeCash", enRechargeInfo.lastTimeCash),
    	                                    New SqlParameter("@currentCash", enRechargeInfo.currentCash),
    	                                    New SqlParameter("@isCheckStutas", enRechargeInfo.isCheckStatus)}
    res = sqlhelper.ExecuteNonQuery(procName, CommandType.StoredProcedure, paras)
三、输出参数设置
  • 另外这里还想补充点知识,那就是关于输出参数的设置。其实在存储过程中可以有输入参数,输出参数,但是一般输入参数不需要进行属性的设置就可以很好的使用,但是输出参数就会相对麻烦一些了,它需要一些属性的设置,下面将输出参数的设置代码展示如下。
  • 代码示例
  • //设置参数
    sqlComm.Parameters.Add("@stuId", SqlDbType.VarChar);
     //注意输出参数要设置大小,否则size默认为0,
     sqlComm.Parameters.Add("@stuName", SqlDbType.VarChar, 10);
    //设置参数的类型为输出参数,默认情况下是输入,
    sqlComm.Parameters["@stuName"].Direction = ParameterDirection.Output; //为参数赋值
     sqlComm.Parameters["@stuId"].Value = "1234";
    

你可能感兴趣的:(结合实例谈SqlParameters的使用)