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. RichEditBox 使用自定义菜单

    老周:当RichEditBox控件的上下文菜单即将弹出时,会引发ContextMenuOpening事件,我们需要处理该事件,并且将e.Handled属性设置为true,这样才能阻止默认上下文菜单的弹 ...

  2. Servlet 笔记-读取表单数据

    Servlet 处理表单数据,这些数据会根据不同的情况使用不同的方法自动解析: getParameter():您可以调用 request.getParameter() 方法来获取表单参数的值. get ...

  3. Tomcat 笔记-配置虚拟目录

    ,默认情况下,只有webapps下的目录才能被Tomcat自动管理成一个web站点,把web站点的目录分散到其他磁盘管理就需要配置虚拟目录.把web应用所在目录交给web服务器管理,这个过程称之为虚拟 ...

  4. [oracle 使用(1)] win7/10 下Oracle10g的安装与卸载

    1.安装前提 首先要确保你的电脑之前没有安装过,或者安装过但是已经卸载干净了.至于如何查看是否卸载干净可以看看我后面的Oracle卸载步骤. 2.Oracle的安装. 2.1.首先自己在Oracle官 ...

  5. 使用Git与Github创建自己的远程仓库

    原因 早就想创建一个自己的远程仓库,方便发布到Nuget上,自己用也好,项目组用也好,都方便. 今天抽了个时间建了个仓库,随便记下溜方便后来的人. 流程 1,创建自己的GitHub仓库 首先需要到 G ...

  6. SSM框架+slf4j 以Gradle实现

    环境:win10+jdk8+tomcat9+Intellij IDEA 首先,作为一个喜欢偷懒的人,管理jar之类的的事情太累,所以用了Gradle项目管理器 第一步: 新建一个gradle-web项 ...

  7. 一起来学linux:SSH远程登陆

    p { margin-bottom: 0.25cm; line-height: 120% } a:link { } 在最早的远程连接技术,主要是telnet和RSH为主.缺点也很明显,就是明文传输.在 ...

  8. Python爬虫之爬取慕课网课程评分

    BS是什么? BeautifulSoup是一个基于标签的文本解析工具.可以根据标签提取想要的内容,很适合处理html和xml这类语言文本.如果你希望了解更多关于BS的介绍和用法,请看Beautiful ...

  9. Ruby on Rails---Active Admin使用(一)

    概述 Active Admin提供了一个友好的后台管理界面,将CRUD等操作可视化,操作极其方便 安装 1. 添加gem gem "devise", :github => ' ...

  10. js中的事件缓存机制

    异步任务指的是,不进入主线程.而进入"任务队列"(task queue)的任务,只有"任务队列"通知主线程,某个异步任务可以执行了,该任务才会进入主线程执行. ...