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=参数的值;

最新文章

  1. Objective-C内存管理之-引用计数
  2. sqlite字段属性删除方法
  3. kafka及zookeeper安装
  4. SiteMesh3整合SpringMVC+FreeMarker
  5. Sharepoint 2010 工作流启动时处理表单出错
  6. Sql导出数据报错-->SQL Server 阻止了对组件 'Ad Hoc Distributed Queries' 的 STATEMENT'OpenRowset/OpenDatasource' 的访问
  7. python成长之路【第六篇】:python模块--time和datetime
  8. android背景选择器selector用法汇总
  9. 索引时利用K-邻近算法过滤重复歌曲
  10. 开涛spring3(6.6) - AOP 之 6.6 通知参数
  11. Chrome 插件——二维码生成笔记
  12. To the Max POJ - 1050 (最大子段和)
  13. 安装cmake
  14. yuan先生博客链接
  15. python--第十一天总结(paramiko 及数据库操作)
  16. vue 自学笔记(七) 组件细节问题
  17. dijkstra 的优先队列优化
  18. webapi帮助文档swagger
  19. CountDownLatch、CyclicBarrier及Semaphore的用法示例
  20. Oracle传输表空间介绍

热门文章

  1. *ecshop 模板中foreach用法详解
  2. 【英语】Bingo口语笔记(45) - Pass系列
  3. Windows Server 2003 激活码及激活方法
  4. Java核心技术II读书笔记(一)
  5. Python中的sorted函数以及operator.itemgetter函数
  6. jQuery和CSS 3定制HTML 5视频播放器
  7. 嵌入式 hi3518平台指定网卡测试是否通外网
  8. nginx中针对目录进行IP限制
  9. Yii系列教程(四):使用Memcache保存会话
  10. 经典C语言面试题