假设在ABC.cs文件中,我在建立了一Gethtbhnum数据集如下:
public DataSet Gethtbhnum()
{
//连接字符串为空,则抛出错误
if(mcnStr == "")
{
    throw(new ArgumentNullException("ConnectionString","数据库连接字符串为空"));
}
OleDbConnection objCn = new OleDbConnection();//建立联接
OleDbDataAdapter objCmd;
DataSet Ds = new DataSet();
try
{
    objCn.ConnectionString = mcnStr;
    objCmd = new OleDbDataAdapter("select * from efmvalues where efmid in (select efmid from flowctrl where efmformname='合同审批表' and stepname='总经理') and fldname='T1' order by efmid",objCn);
    objCmd.Fill(Ds,"efmvalues");
   objCn.Close();
}
catch  (Exception e)
{
    throw(new Exception("方法 BUEfmValues.Gethtbhnum中发生错误", e));
}
finally
{
    if(!(objCn.State == ConnectionState.Closed))
    objCn.Close();
}
return Ds;
}
现在我在ABC.cs 的另一个方法中调用Gethtbhnum(),如下所示:
DataSet htnumds=new DataSet();
htnumds=this.Gethtbhnum(str1); if (htnumds.Tables[0].Rows.Count>0)
        {
            .........
        }
但是老是说Gethtbhnum()中发生错误,超时已过期,不知道是什么原因啊!

解决方案 »

  1.   

    你跟踪进去看看,我怀疑是
    select * from efmvalues where efmid in (select efmid from flowctrl where efmformname='合同审批表' and stepname='总经理') and fldname='T1' order by efmid
    数据太多超时
      

  2.   

    OleDbConnection objCn = new OleDbConnection();//建立联接
    OleDbDataAdapter objCmd;
    DataSet Ds = new DataSet();
    try
    {
        objCn.ConnectionString = mcnStr;
        objCmd = new OleDbDataAdapter("select * from efmvalues where efmid in (select efmid from flowctrl where efmformname='合同审批表' and stepname='总经理') and fldname='T1' order by efmid",objCn);
        objCmd.Fill(Ds,"efmvalues");
       objCn.Close();
    } --------------------- 以你的数据库连接字符串正确为前提
    OleDbConnection objCn = new OleDbConnection(mcnStr);//建立联接
             objCn.Open();
    OleDbDataAdapter objCmd;
    DataSet Ds = new DataSet();
    try
    {
        objCmd = new OleDbDataAdapter("select * from efmvalues where efmid in (select efmid from flowctrl where efmformname='合同审批表' and stepname='总经理') and fldname='T1' order by efmid",objCn);
        objCmd.Fill(Ds,"efmvalues");
    }