IDataParameter[]是参数数组吧?
请问大家怎么用啊???
有一段程序:
private SqlCommand BuildQueryCommand( string cmdString, IDataParameter[] parameters )
{
SqlCommand command = new SqlCommand( cmdString, conn ); foreach (SqlParameter parameter in parameters)
{
command.Parameters.Add( parameter );
} return command;
}
但是怎么样在调用BuildQueryCommand的时候,给IDataParameter[] parameters 赋值呢?

解决方案 »

  1.   

    new IDataParameter[] = new IDataParameter[]{ new SqlParameter( ..... ), new SqlParameter( ..... ), new SqlParameter( ..... )  }
      

  2.   

    从表面上看,IDataParameter[]的实例就是一个IDataParameter的数组。而IDataParameter实际上是不能直接实例化的,所以这种数组其实很不常见,仅仅会出现在函数的入口参数里面。且多以params的形式出现。这样做的好处是令这个函数可以对付所有的数据库。IDataParameter[]简单的说来,就是可以包含任何数据库参数的数组,这些参数可以是SqlParameter或者OleDbParameter,但是,IDataParameter[]不可以直接从SqlParameter[]转换过来。下面是三种创建IDataParameter[]的方法:一、直接构造:
    IDataParameter[] parameters = new IDataParameter[]{ sqlparameter1, sqlparameter2, new SqlParameter(...) }二、通过ArrayList转换。
    ArrayList paramlist = new ArrayList()
    paramlist.Add( sqlparameter1 );
    ....
    ....IDataParameter param = (IDataParameter[]) paramlist.ToArray( typeof( IDataParameter ) );三、通过其他Parameter类型的数组创建。SqlParameter[] _param = new SqlParameter[]{ .... }
    IDataParameter[] param = new IDataParameter[ _param.Length ];
    _param.CopyTo( param, 0 );