C#代码  
ExecuteReader(string connectionString, CommandType commandType, string commandText, params SqlParameter[] commandParameters)

以params声明的形参说明参数的个数是可选的,可以为0个或多个。
以params声明的形参中含一个参数数组,则该参数数组必须位于形参列表最后;
以params声明的参数数组必须是一维数组;
以params声明的形参当为多个时,以","分开传入.

一个参数: 
C#代码  
ExecuteReader(System.Data.CommandType.Text,"select * from table1 where id =@id",new System.Data.SqlClient.SqlParameter("@id",12));

多个参数: 
C#代码  
ExecuteReader(System.Data.CommandType.Text,"select * from table1 where id =@id and name=@name",
new System.Data.SqlClient.SqlParameter("@id",12),new System.Data.SqlClient.SqlParameter("@name","中国"));
或者: 
public static int ExecuteNonQuery(SqlConnection connection, CommandType cmdType, string cmdText, params   SqlParameter[] commandParameters)   
        {   
            //...   
        }     
SqlParameter   a   =  new SqlParameter("@id", "12");   
SqlParameter   b   =  new SqlParameter("@name", "中国");     
ExecuteNonQuery(conn,   cmdType,   cmdText,   a,   b);  
或者:
sqlParameter[] paras =new SqlParameter[]{
  new SqlParameter("@id", "12"), 
  new SqlParameter("@name", "中国")
};
ExecuteNonQuery(conn,   cmdType,   cmdText, paras);

因为是params 声明的,所以这个参数可以不填。或传入一个事先设置好的SqlParameter类型的数组。

注意:

当SqlParameter的构造函数为:SqlParameter(string, object)
当在 value 参数中指定 Object 时,SqlDbType 将从 Object 的 .NET Framework 类型推断出。

请小心使用 SqlParameter 构造函数的这个重载来指定整数参数值。 因为此重载接受 Object 类型的 value,所以当此值为零时,必须将整数值转换为 Object 类型,如下面的 C# 示例所示。

Parameter = new SqlParameter("@pname", Convert.ToInt32(0));

如果不执行该转换,则编译器将认为您尝试调用 SqlParameter(string、SqlDbType)构造函数重载

解释:1:通俗点说就是0是设置默认的SqlDbType。
         几乎相当与在其他语言中设置默认参数时使用null一样
         而Convert.ToInt32(0)相当于转义,把设置默认参数的0转化为真实的数值0
      2:在编程中0表示的类型:可以是true,可以看成空,也可以是整数。
         所以必须给它一个确定的类型。

第一种: 
    SqlCommand1.Parameters.Add(参数名称,参数值);
   //参数值为0时,必须转换为Object类型
   //如果不执行该转换,则编译器将认为您尝试调用 SqlParameter(string、SqlDbType)构造函数重载
   //或者使用第二种,确定参数类型,并赋值,不需要转换
第二种: 
SqlCommand1.Parameters.Add(参数名称,参数类型,参数长度,参数所在列的名字); 
然后再SqlCommand1.Parameters[ "参数名称 "].value=参数的值; 
或SqlCommand1.Parameters.Add(参数名称,参数类型,参数长度,参数所在列的名字).value=参数的值;

params SqlParameter[] commandParameters(转)的更多相关文章

  1. 传统的Ado.net 参数设置:params SqlParameter[] commandParameters

    C#代码  ExecuteReader(string connectionString, CommandType commandType, string commandText, params Sql ...

  2. 便于开发的Helper类

    一.将config封装实体层: 例子config: <?xml version="1.0" encoding="utf-8" ?> <Sett ...

  3. 微软版的SqlHelper.cs类

    一,微软SQLHelper.cs类 中文版: using System; using System.Data; using System.Xml; using System.Data.SqlClien ...

  4. SqlHelper类

    using System; using System.Collections; using System.Collections.Generic; using System.Data; using S ...

  5. 【2016-11-2】【坚持学习】【Day17】【微软 推出的SQLHelper】

    从网络上找到 微软原版本的SQLHelper,很多行代码.认真看了,学习了.  代码:  using System; using System.Data; using System.Xml; usin ...

  6. SqlHelper c#

    using System; using System.Data; using System.Xml; using System.Data.SqlClient; using System.Collect ...

  7. SQLHelper

    今天学习了.net后,经过老师的一番讲解,似乎对它越来越渴望了,希望自己在接下来的学习当中,能很好的驾驭.net,加油吧, 下面我分享一个操作SQL数据库的代码大全,谢谢观赏.嘿嘿,还是比较长的哦, ...

  8. C# DataGridView自定义分页控件

    好些日子不仔细写C#代码了,现在主要是Java项目,C#.Net相关项目不多了,有点手生了,以下代码不足之处望各位提出建议和批评. 近日闲来无事想研究一下自定义控件,虽然之前也看过,那也仅限于皮毛,粗 ...

  9. C#导入Exel

    ; try { ]; string[] NoExPrentFile = new string[] { "xls", "xlsx" }; ] || fileTyp ...

随机推荐

  1. win10 输入法禁用IME

    发现了win10 没法输入,因为禁用IME 右击开始 计算机管理  任务计划程序 打开到Microsoft/Windows/TextServicesFramework  选择操作运行  选择如果任务失 ...

  2. debian change system language

    1. select locales: 2. set language: sudo localectl set-locale LANG=zh_CN.utf8 sudo localectl set-loc ...

  3. Gridview 动态添加行

    /// <summary> /// 首次加载绑定 /// </summary> private void DataLoad()         { list.Add(new P ...

  4. <c:forEach items="${list}" var="tt" varStatus="status"> 的相关大小长度

    <c:forEach items="${list}" var="tt" varStatus="status"> ${status ...

  5. JavaScript--我发现,原来你是这样的JS(再说引用类型,基本包装类型与个体内置对象)

    一.介绍 本篇是续上一篇的,引用类型的后篇,本篇主要是说基本包装类型和个体内置对象.如果你能收获一些知识,那我很高兴,很满足,哈哈哈,希望大家能愉快看完.如果你想学好一门技术,要不忘初心,方得始终. ...

  6. IE10和IE11中滑动条遮挡页面问题

    今天在开发的过程中前端项目,在小设备上会出现滑动条,这本没什么,在其他浏览器上都很正常,但是在IE10和IE11上出现了问题,发现侧边滑动条挡住了一部分页面的内容,因为侧边有要操作的按钮,这就是一个很 ...

  7. hihocoder 1015题

    代码 #include <iostream> #include <string> #include <typeinfo> #include <vector&g ...

  8. CodeForces - 556A Case of the Zeros and Ones

    //////////////////////////////////////////////////////////////////////////////////////////////////// ...

  9. Log4j 2翻译 Garbage-free Steady State Logging(稳定的以不会生成垃圾的状态来记录日志)

    本人菜鸟,在学习Log4j 2 的时候做的一些笔记---对"官方网站"的翻译,部分内容自己也不懂,希望大家指点 Garbage collection pauses are a co ...

  10. javascript中自定义事件

    自定义事件:用户可以指定事件类型,这个类型实际上就是一个字符串,然后为这个类型的事件指定事件处理函数,可以注册多个事件处理函数(用数组管理),调用时,从多个事件处理函数中找到再调用. function ...