日期:2014-05-19  浏览次数:21095 次

返回DataSet超时的问题
一般来说返回DataSet的函数都是这么写
public   DataSet   getrs(string   sql)
{
System.Data.SqlClient.SqlConnection   =   new   SqlConnection();
System.Data.SqlClient.SqlDataAdapter   comm=new   SqlDataAdapter(sql,conn);
System.Data.DataSet   ds=new   DataSet();
comm.Fill(ds);
return   ds;
}
其中     new   SqlConnection()里面放连接数据库的字符串,
参数sql是查询语句,例如sql= "select   *   from   s_user "等等
但是如果这个查询时间比较长(因为表的里数据比较大,而且查询语句里还调用了函数),系统将会返回超时错误,不知道在哪里控制

在new   SqlConnection()里面放连接数据库的字符串里面放Connect   Timeout=300;是不对的,因为这是运算的时间,不是连接数据库的时间。
要是System.Data.SqlClient.SqlCommand   comm还好办
可以定义comm.CommandTimeout=300,但是我说的这种情况怎么办呢?怎么解决超时的问题,谢谢。

------解决方案--------------------
public DataSet getrs(string sql)
{
System.Data.SqlClient.SqlConnection conn= new SqlConnection(連接數據這符串);
System.Data.SqlCommand commd=new SqlCommand(sql,conn);
System.Data.SqlClient.SqlDatAdapter comm=new SqlDataAdapter(sql,conn);
comm.CommandType = commd;
System.Data.DataSet ds=new DataSet();
comm.Fill(ds);
return ds;
}