public List<OrderData> GetOrderData(string from, DateTime lastmodifydate)
        {            string connectionString = ConfigurationManager.ConnectionStrings["SQLConnString1"].ConnectionString;            string sqlstring = "select * from " + from + " where datediff(d,'" + lastmodifydate.ToString() + "',日期)>=0";            List<OrderData> _list = new List<OrderData>();            SqlCommand cmd = new SqlCommand();
            SqlConnection conn = new SqlConnection(connectionString);
            if (conn.State != ConnectionState.Open)
                conn.Open();            cmd.Connection = conn;
            cmd.CommandText = sqlstring;            cmd.CommandType = CommandType.Text;            SqlDataReader rdr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
            cmd.Parameters.Clear();
            while (rdr.Read())
            {                OrderData _orderdata = new OrderData();                _orderdata._calldate = rdr.GetDateTime(7);
                _orderdata._orderdate = rdr.GetDateTime(8);
                _orderdata._relatedphone = rdr.GetString(2);
                _orderdata._roomnum = rdr.GetString(4);
                _orderdata._telephone = rdr.GetString(1);
                
                _list.Add(_orderdata);            }            conn.Close();            return _list;        }如果数据超过四千条,就出现程序查询的很慢。请高手帮我解决。

解决方案 »

  1.   

    可以用分页查询啊.
    在sql 语句上进行分页.再加一个参数.当前页就好了
      

  2.   

    select top 100 * from tablename ...
      

  3.   

    string sqlstring = "select * from " + from + " where datediff(d,'" + lastmodifydate.ToString() + "',日期)>=0";中出现这样的语句
    select *,datediff(d,'" + lastmodifydate.ToString() + "',日期)>=0
    就相当于全文检索了.
    你可以 top n 需要检索出的字段名,构建索引等方法将之简化.
      

  4.   

    select top 100 * from tablename ...
    ---------------------------------------------LS
    是否可以分批查询……
      

  5.   

    这么多数据应该在前台不需要都使用吧,建议分页,
    http://blog.csdn.net/zhzuo/archive/2006/09/30/1313274.aspx