SqlDataAdapter.Fill()的时候超时
public DataTable GetDataSet(string sql, params SqlParameter[] values)
         {
             using (SqlCommand cmd = new SqlCommand(sql, Connection))
             {
                 DataSet ds = new DataSet();
                 cmd.CommandType = CommandType.StoredProcedure;
                 cmd.Parameters.AddRange(values);
                 SqlDataAdapter da = new SqlDataAdapter(cmd);
                 da.Fill(ds);
                 return ds.Tables[0];
             }            
         }
这里就是调用的时候:
    public DataTable GetWeekProduct(DateTime startTime, DateTime endTime)
         {
             string strSql = "DB.DBO.usp_WeekProductReport  ";
             SqlParameter[] sp = new SqlParameter[]  
             {
                 new SqlParameter("@DateFrom",startTime),
                 new SqlParameter("@DateTo",endTime),                  
             };
             return base.GetDataSet(strSql, sp);  
         }
我在数据库里面直接查询的话只需要2秒钟数据就出来了,数据量只有10条数据,但是在程序里面就死掉了,就是da.Fill(ds)的时候卡住了,
我是调用的一个存储过程来查询,网上说的那些设置cmd.CommandTimeout我也试过了,问题依旧,不知道有没有人遇见过。
------解决方案--------------------
------解决方案--------------------看看这个
http://topic.csdn.net/u/20110822/16/91b7fccc-abb8-429f-a237-665b6428ebb1.html
------解决方案--------------------
Adapter的Fill办法填充的是数据表表,因此你的这句:DataSet ds = new DataSet();
就可以改成DataTable Dt=new DataTable();
下面的填充就是:
  da.Fill(Dt);
  Return Dt;
你创建的DataSet里面是不是还没有数据表啊?
还可以用DataTable的Load方法LoadDataReader
  SqlDataReader Dr= Cmd.ExecuteReader();
  Dt.Load(Dr, LoadOption.PreserveChanges);
------解决方案--------------------打开SQLSERVER的查询跟踪,监测你程序执行存储过程时的数据库操作,如果是SQL语句问题,可以看到当时执行的SQL语句,并分析语句,如果没看到任何SQL语句,就可能是连接问题,未连接到数据库。