大概想实现下面的效果
           if (Destination != "0")
            {
                SELECT_STRING+= "STRING1=@STRING1";
            }
            if (school != "0")
            {
                SELECT_STRING+= "STRING2=@STRING2";
            }
            if (datetime != "0")
            {
                SELECT_STRING+= "[STRING3]=@STRING3";
            }
其中SQLHELP的参数需要SqlParameter数组,
我怎么根据参数的个数不同,添加多个参数呢 ? 在每一个IF里面自动添加参数。。

解决方案 »

  1.   

     ArrayList arr = new ArrayList();
            ArrayList arrValue = new ArrayList ();
            int i = 0;
            if (1 == 2)
            {
                arr.Add("@STRING1");
                arrValue.Add("STRING1");
                i++;
            }
            if (1 < 2)
            {            arr.Add("@STRING2");
                arrValue.Add("STRING2");
                i++;
            }
            if (3 > 2)
            {
                arr.Add("@STRING3");
                arrValue.Add("STRING3");
                i++;
            }        SqlParameter[] parm = new SqlParameter[i];
            for (int j = 0; j < arr.Count; j++)
            {
                SqlParameter newPar = null;
                parm[j] = new SqlParameter(arr[j].ToString(),arrValue[j].ToString());            parm.SetValue(newPar, i - 1);
            }
            for (int k = 0; k < i; k++)
            {
                Response.Write(parm[0].ParameterName);
                Response.Write(parm[0].Value);
                Response.Write("<br>");
            }
            
    简单写一个,期待更好的方法
      

  2.   

    不好意思,上一贴有点问题 ArrayList arr = new ArrayList();
            ArrayList arrValue = new ArrayList ();
            int i = 0;
            if (1 == 2)
            {
                arr.Add("@STRING1");
                arrValue.Add("STRING1");
                i++;
            }
            if (1 < 2)
            {            arr.Add("@STRING2");
                arrValue.Add("STRING2");
                i++;
            }
            if (3 > 2)
            {
                arr.Add("@STRING3");
                arrValue.Add("STRING3");
                i++;
            }        SqlParameter[] parm = new SqlParameter[i];
            for (int j = 0; j < arr.Count; j++)
            {            
                parm[j] = new SqlParameter(arr[j].ToString(),arrValue[j].ToString());            //parm.SetValue(newPar,j);
            }
            for (int k = 0; k < i; k++)
            {
                Response.Write(parm[k].ParameterName);
                Response.Write(parm[k].Value);
                Response.Write("<br>");
            }
      

  3.   

    List<SqlParameter> params = new List<SqlParameter>();
    params.Add(xxx);
    SqlParameter[] Params = params.ToArray();
      

  4.   

    谢谢ai_quaner,这个办法不错,一直的困惑解决了