public DataSet redData(string sqlstring)
{
OleDbDataAdapter adapter1=new OleDbDataAdapter(sqlstring,dataconnect);
DataSet dataset1=new DataSet();
try
{
dataconnect.Close();
dataconnect.Open();
adapter1.Fill(dataset1);
}
catch(Exception e1)
{
errmessage=e1.Message.ToString();
}
return dataset1;

//adapter1.
//command1.CommandText=sqlstring; }在执行到“adapter1.Fill(dataset1);”的时候,会出现如下错误:
"IErrorInfo.GetDescription 因 E_FAIL(0x80004005) 而失败。"
请高手指点!

解决方案 »

  1.   

    不明白你为什么要先close一下
    然后才open
      

  2.   

    try
    {
    dataconnect.Open();
    adapter1.Fill(dataset1);
    }
    catch(Exception e1)
    {
    errmessage=e1.Message.ToString();
    }
    finally
    {
    dataconnect.Close();}
      

  3.   

    1.先调试一下sql语句是否正常,
    2.如果执行到adapter1.Fill(dataset1);一句,
    那么出错的可能是上一句.就是打开数据连接错误.
    检查连接字符串
      

  4.   

    sql  语句没有出错,我在access里面查询可以得到结果。
    我在前面加上dataconnect.Open();的目的就是想检测一下是否可以正确的打开链接,结果表明打开链接不会出现异常!
      

  5.   

    DataSet ds = new DataSet();
        conn.Open();
        OleDbDataAdapter da = new OleDbDataAdapter(SQLStr,conn);
        da.Fill(ds);
        conn.Close();先open(连接),在对其进行操作!!
    祝你好运!