public void Show(string sql1)
        {
           
            string sqlcon = "server=.;database=NMH;uid=sa;pwd=sa";
            SqlConnection con = new SqlConnection(sqlcon);
            con.Open();
            string sql = "select Num from View2 where Descrip='"+sql1+"' order by Num desc";
            SqlCommand cmd = new SqlCommand(sql, con);
            SqlDataReader dr = cmd.ExecuteReader();
            ArrayList arr1 = new ArrayList();
            arr1.Add("abc-78956");
            arr1.Add("abc-123443543456");
            arr1.Add("ab111111211111111111110111110911111081111107111110");
            arr1.Add("1");
            arr1.Add("2");
            arr1.Add("3");
            arr1.Add("4");
            arr1.Add("5");
            arr1.Add("1");
            arr1.Add("2");
            arr1.Add("3");
            arr1.Add("4");
            arr1.Add("5");
            arr1.Add("1");
            arr1.Add("2");
            arr1.Add("3");
            arr1.Add("4");
            arr1.Add("5");
            arr1.Add("1");
            arr1.Add("2");
            arr1.Add("3");
            arr1.Add("4");
            arr1.Add("5");
            while (dr.Read())
            {
                for (int f = 0; f < arr1.Count; f++)
                {
                    if (dr[0].ToString() == arr1[f].ToString())
                    {
                      
                        label1.Text =label1.Text+dr[0].ToString();
                        break;
                    }
                }
            }
            dr.Close();
            if (cmd != null)
                cmd.Dispose();
            con.Close();
          
        }
当数据量比较大的时候,读取数据要很常时间,谁能帮优化优化,谢谢

解决方案 »

  1.   

    SqlDataReader  改为dataSet 
    ArrayList改为Hashtable
      

  2.   

    1.既然要使用所有数据,干脆使用SqlDataAdapter的Fill方法一次性地将所有数据全部读入DataTable。
    2.使用StringBuilder来构造字符串。
    3.先创建一个字符串数组,包含有"1"、"2"等需要添加的元素,然后使用ArrayList的AddRange一次性将这些元素加入,可以重复使用。
      

  3.   

    用SqlDataAdapter的fill方法,将数据导入DataSet.
      

  4.   

    顶一楼和二楼的两位,方法很好。如果再把你的arraylist换成List<>泛型,就更完美了