SqlCommand cmd = new SqlCommand( "select * from Customers where city = @City", conn);SqlParameter param  = new SqlParameter();
param.ParameterName = "@City";
param.Value= inputCity;
先在SQL语句中用 @City声明参数 而后通过SqlParameter来增加参数的值。现在问题是我的查询条件特别多(20多个),而且一次查询不一定都用上,可能只用其中的几个也可能全部用上。这时候 @City这类东西我觉得就需要动态增加了,但一直没有找到方法。特别是在VS2005中所见到的例子都是事先预定好SqlCommand的,而后传递参数,才可以支持Gridview的直接排序编辑等,请高手指点,谢谢

解决方案 »

  1.   

    Hashtable HT=new Hashtable();
    HT.add("Key1","Value1");
    HT.add("Key2","Value2")public static SqlParameter[] GetParamets(Hashtable HT)
    {
    SqlParameter[] Paramets;
    if(HT!=null)
    {
    Paramets=new SqlParameter[HT.Count];
    IDictionaryEnumerator IDE=HT.GetEnumerator();
    int i=0;
    while(IDE.MoveNext())
    {
    SqlParameter Par=new SqlParameter("@" + IDE.Key.ToString(),IDE.Value.ToString());
    Paramets[i]=Par;
    i++;
    }
    }
    else
    {
    Paramets=new SqlParameter[0];
    }
    return Paramets;
    }