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. Spring装配Bean之Java代码装配bean

    尽管通过组件扫描和自动装配实现Spring的自动化配置很方便也推荐,但是有时候自动配置的方式实现不了,就需要明确显示的配置Spring.比如说,想要将第三方库中的组件装配到自己的应用中,这样的情况下, ...

  2. Java调度线程池ScheduledThreadPoolExecutor源码分析

    最近新接手的项目里大量使用了ScheduledThreadPoolExecutor类去执行一些定时任务,之前一直没有机会研究这个类的源码,这次趁着机会好好研读一下. 该类主要还是基于ThreadPoo ...

  3. NodeJs之数据库异常处理

    数据库异常 NodeJs版本:4.4.4 数据库链接错误 使用nodejs处理异常最麻烦不过,这里我抛开nodejs提供的domain和一些第三方库专门处理的东西.操作数据库是我们常用的功能.通过回调 ...

  4. onclick事件触发 input type=“file” 上传文件

    添加按钮: <input type="button" name="button" value="浏览" onclick="j ...

  5. 快速部署MongoDB

    MongoDB是一个基于分布式文件存储的数据库.由C++语言编写.旨在为WEB应用提供可扩展的高性能数据存储解决方案.本文安装的版本为3.0,其他版本可对照. 设置mongodb repo vi /e ...

  6. Android开发中的OpenCV霍夫直线检测(Imgproc.HoughLines()&Imgproc.HoughLinesP())

    本文为作者原创,转载请注明出处(http://www.cnblogs.com/mar-q/)by 负赑屃   //2017-04-21更新: 很多网友希望能得到源码,由于在公司做的,所以不太方便传出来 ...

  7. 纯js实现DIV拖拽

    写代码的时候遇到需要对绝对布局的div进行拖拽的功能,起初为了省事直接在网上扒拉了一番,看到大神张鑫旭的一篇文章<JavaScript实现最简单的拖拽效果>,便直接拿来使用(膜拜大神).但 ...

  8. C++输入输出cin与cout

    输入对象 istream:cin(标准输入) 输出对象 ostream: cout(标准输出), cerr(标准错误),clog(输出程序运行时的一般性信息)

  9. CSS3新增伪类汇总

    :root 选择文档的根元素,等同于 html 元素 :empty 选择没有子元素的元素 :target 选取当前活动的目标元素 :not(selector) 选择除 selector 元素意外的元素 ...

  10. Windows环境下多线程编程原理与应用读书笔记(1)————基本概念

    自从学了操作系统知识后,我就对多线程比较感兴趣,总想让自己写一些有关多线程的程序代码,但一直以来,发现自己都没怎么好好的去全面学习这方面的知识,仅仅是完成了操作系统课程上的小程序,对多线程的理解也不是 ...