public static DataSet ExecuteDataset(string connectionString, CommandType commandType, string commandText)
        {
            return ExecuteDataset(connectionString, commandType, commandText, (SqlParameter[])null);
          
        }
        public static DataSet ExecuteDataset(string connectionString, CommandType commandType, string commandText, params SqlParameter[] commandParameters)
        {
                        using (SqlConnection cn = new SqlConnection(connectionString))
            {
                cn.Open();                               return ExecuteDataset(cn, commandType, commandText, commandParameters);
            }
        }变色的三个地方不懂。。求解答越白痴越好       这样写什么作用?

解决方案 »

  1.   

    1,(SqlParameter[])null);转换成参数数组
    2,params SqlParameter[] commandParameters  参数数组
    3,using (SqlConnection cn = new SqlConnection(connectionString))
    {}
    打开一个连接,在using区域结束时,自动关闭改连接
      

  2.   

    using (SqlConnection cn = new SqlConnection(connectionString))
      创建链接数据库对象,之所以使用using是为了使用链接可以不用手动关闭,隐式调用了Disponse方法
    (SqlParameter[])null  参数作为数组params SqlParameter[] commandParameters   主要注意params 关键字!
      

  3.   

    using (SqlConnection cn = new SqlConnection(connectionString)) 
    这个懂了!
    (SqlParameter[])null 参数作为数组  为什么要这样写呢?把参数作为数组,就是我传值的时候就可以作为数组,,,也可以是空的。对把?params SqlParameter[] commandParameters 主要注意params 关键字! why??
      

  4.   

    (SqlParameter[])null 条件是空的时候
    params SqlParameter[] commandParameters 参数化查询,连接存储过程
    SqlConnection cn = new SqlConnection(connectionString) 数据库连接,connectionString是连接数据库的字符串变量
      
      

  5.   

    1.转换为参数数组。
    2.params SqlParameter[] commandParameters 参数数组,可以传一个null,或一个数组,或直接不传任何值。
    3.using (SqlConnection cn = new SqlConnection(connectionString))区域使用可以提高性能,并自动关闭连接。
      

  6.   

    params参数用于数组长度不定的参数调用时候,便于长度变化不定的参数的调用,需要注意的是:param修饰的参数必须作为函数的最后一个参数,也就是说他后面不能再有参数出现。
    params修饰的参数,可以是空的数组,也可以是null,你举的例子中(SqlParameter[])null表示这个查询没有参数,你举的这个例子我觉得有点画蛇添足了,实际上第一个重载函数根本不需要: public static DataSet ExecuteDataset(string connectionString, CommandType commandType, string commandText, params SqlParameter[] commandParameters)这个函数实际就包含了第一种函数的情况,没有任何参数,因为params参数容许0个参数,也就是什么都没有,下面两个调用都是有效的:
    ExecuteDataset(“”, CommandType.Text, "")---没有任何参数
    ExecuteDataset("", CommandType.Text, "", SqlParameter1, SqlParameter2)
    其中字符串用“”代替了,SqlParameter1和SqlParameter2是初始化好的SqlParameter对象,当然后面还可以加SqlParameter3... ...根据你的需要。
      

  7.   

    public static DataSet ExecuteDataset(string connectionString, CommandType commandType, string commandText, params SqlParameter[] commandParameters)
    如:
    ExecuteDataset(connectionString,commandType,commandText,如果传值就要前面的逗号,这里可以是一个数组,或N个参数用逗号隔开,即是可变的参数)
      

  8.   

    如果这个还说的不清楚的话,你可以去参考一下string.format的说明文档
    string.format("haha,hello world")
    string.format("haha,{0} world", "hello")
    string.format("haha,{0} {1}","hello","world")返回结果是一样的,他们调用的都是同一个函数public static string Format(string format, params object[] args);