namespace params可变参数
{
class Program
{
static void Main(string[] args)
{
int[] num = {, , , };
Test("老王", num);
Test("老王", , , ); //从方法哪里的参数可以知道,老王后面应该是数组,但是数组的内容一旦确定就不能修改了
// 但是要想改变数组的内容,要在方法里加上一个params可变参数(但是可变内容的类型要与数组类型相同),但是这个要放在方法的最后面,
// 例如要添加一个学号
Console.ReadKey();
//int b=Sum(56,56,56,56);
//Console.WriteLine(b);
Console.ReadKey();
}
public static void Test(string name, params int[] score)
{
int sum = ;
for(int i = ; i < score.Length; i++)
{
sum += score[i];
}
Console.WriteLine("我叫{0},我这次的总成绩{1}", name, sum);
}
public static int Sum(params int[] sum)
{
int a = ;
for(int i = ; i < sum.Length; i++)
{
a += sum[i];
}
return a;
//Console.WriteLine();
}
}
}

==============================================================================================

有时候为图方便,会直接用sqlhelper文件进行相关操作,会出现如下的类:

public static object ExecuteScalar(string sqlStr, params SqlParameter[] parameters)
{
using(SqlConnection conn = new SqlConnection(connStr))
{
conn.Open();
using(SqlCommand cmd = conn.CreateCommand())
{
cmd.CommandText = sqlStr;
cmd.Parameters.AddRange(parameters);
return cmd.ExecuteScalar();
}
}
}
 

调用方法一般有如下两种:

一、Add方法

SqlParameter sp = new SqlParameter("@name", "Pudding");
cmd.Parameters.Add(sp);
sp = new SqlParameter("@ID", "1");
cmd.Parameters.Add(sp);

该方法每次只能添加一个SqlParameter。上述代码的功能是将ID值等于1的字段name更新为Pudding(人名)。

二、AddRange方法

SqlParameter[] paras = new SqlParameter[] { new SqlParameter("@name", "Pudding"), new SqlParameter("@ID", "1") };
cmd.Parameters.AddRange(paras);
本人实际操作中无 cmd.Parameters.AddRange(paras) 因为在 ExecuteScalar方法中已经添加参数。
显然,Add方法在添加多个SqlParameter时不方便,此时,可以采用AddRange方法。
 
 string strconn = "Data Source=xxx;user id=sa;pwd=;initial catalog=gltest";
SqlConnection Conn = new SqlConnection(strconn);
Conn.Open();
string sql = "insert into users(name,pwd) values (@name,@pwd)";
SqlCommand cmd = new SqlCommand(sql, Conn);
cmd.Parameters.Add(new SqlParameter("@name", SqlDbType.NVarChar, 50));
cmd.Parameters.Add(new SqlParameter("@pwd", SqlDbType.NVarChar, 50));
cmd.Parameters["@name"].Value = this.TextBox1.Text;
cmd.Parameters["@pwd"].Value = this.TextBox2.Text;
cmd.ExecuteNonQuery();
Conn.Close();
comm.Parameters.Add()添加参数到参数集,add里面的第一个参数是要添加的参数名,第二个参数是参数的数据类型
Parameters的作用就是把存储过程执行结束后得到的参数传到程序里 第一个是参数名,第二个是参数类型,第三个是长度

  

params可变参数、SqlCommand.Parameters.add()方法的更多相关文章

  1. C#编程:SqlCommand.Parameters.Add()方法的参数问题。

    在存储过程中添加2个参数 sql语句 例: “update [tablename] username = @username where id=@id” 然后把需要的 command.Paramete ...

  2. SqlCommand.Parameters.add()方法

    SqlParameter 类 表示 SqlCommand 的参数,也可以是它到 DataSet 列的映射.无法继承此类. 命名空间:  System.Data.SqlClient 程序集:  Syst ...

  3. C#中的out参数/ref参数/params可变参数

    out参数: out关键字 通过引用来传递参数,在定义方法和调用方法的时候都必须使用out关键字 简单来讲out可以用来返回多个参数类型. static void Main(string[] args ...

  4. out参数ref参数params 可变参数

    1.我们在主函数中调用其他函数,我们管主函数为调用者,其他函数为被调用者. 如果被调用者,想要得到调用者的值:传参 使用静态字段来模拟全局变量  在方法外类里写字段 public static _na ...

  5. C# params 可变参数使用注意

    今天在一个 .NET Core 项目中调用一个自己实现的使用 params 可变参数的方法时触发了 null 引用异常,原以为是方法中没有对参数进行 null 值检查引起的,于是加上 check nu ...

  6. params可变参数

    class Program { // params可变参数 //将实参列表中跟可变参数数组类型一致的元素都当做数组的元素去处理. //params可变参数必须是形参列表中的最后一个元素. static ...

  7. [c#]params可变参数

    摘要 在项目中多多少少会用到params这个关键字,来修饰参数,它的作用,让该参数的个数是可变的,并且可变参数必须是方法的最后一个参数.但如何判断到底有没有为该参数传递值,怎么判断? 一个例子 sta ...

  8. C++ 实现可变参数的三个方法

    有时我们无法提前预知应该向函数传递几个实参.例如,我们想要编写代码输出程序产生的错误信息,此时最好用同一个函数实现该项功能,以便对所有错误的处理能够整齐划一.然而,错误信息的种类不同,所以调用错误输出 ...

  9. 了解golang的可变参数(... parameters),这一篇就够了

    在实际开发中,总有一些函数的参数个数是在编码过程中无法确定的,比如我们最常用的fmt.Printf和fmt.Println: fmt.Printf("一共有%v行%v列\n", r ...

随机推荐

  1. AOP注解形式 整合memcache

    1.首先自定义注解 :添加缓存 @Target(ElementType.METHOD)@Retention(RetentionPolicy.RUNTIME)@Documented@Inheritedp ...

  2. scrapy-redis让redis不止使用db0

    废话不多说,直接在  custom_settings 设置即可 代码: class MySpider(RedisSpider): """Spider that reads ...

  3. HLPP算法 一种高效的网络最大流算法

    #include <algorithm> #include <cstdio> #include <cctype> #include <queue> #d ...

  4. 26.bulk批量操作

    主要知识点 1.bulk语法 2.bulk使用时的注意事项 3.bulk size 对es性能的影响     一.bulk语法 每一个操作要两个json串(delete操作除外),每个json串占一行 ...

  5. 把 Python 脚本打包成可以直接双击运行的 .exe 文件 【转】

    因为最近要用到 Python 脚本,所以自己学习了一下,顺便学习如何把它打包成 .exe 可执行文件,达到双击运行的效果,网上找了资料,保存下来学习用,原文出处:https://baijiahao.b ...

  6. 多层下firebird自增长字段的处理

    使用unidac可以解决自增长字段处理的问题. 对于多层就是一个比较烦人的事情,解决办法:cliendataset中自增长字段的处理:id:自增长字段.在client中的处理方法:clientdata ...

  7. 【习题 4-7 UVA - 509】RAID!

    [链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 如果一行里面某位有>1个x 那么是invalid的. 没有x的话. 可以分析以下(设输入的标准Even为0,然后Odd为1) ...

  8. (13)处理静态资源(默认资源映射)【从零开始学Spring Boot】

    Spring Boot 默认为我们提供了静态资源处理,使用 WebMvcAutoConfiguration 中的配置各种属性. 建议大家使用Spring Boot的默认配置方式,如果需要特殊处理的再通 ...

  9. hdu 1713求分数的最小公倍数

    题意中的圈数和天数说反了 #include<stdio.h> __int64 gcd(__int64 a,__int64 b) {/* 比如4/3 3/5 通分20/15 9/15 所以这 ...

  10. mysql 多个select需要放入一个事务吗?

    第一次写博客,还请大家多多支持 今天同事问了个问题:在多个select的时候,用不用放入同一个事务? 首先先看个例子: public class JDBCClient { public static  ...