我写的一个查询数据库的函数,如下,在第一次运行的时候,没有问题。但是连续第二次运行的时候,就会在标注的地方报错。说什么系统错误,郁闷的就是这种不清不楚的提示。 希望大家不吝赐教!public static DataSet Query(string StrConnect,string Strsql)
{
    int icount=0;
    if(Strsql.Trim().Length>0)
    {
        SqlConnection conn = new SqlConnection(StrConnect);
        conn.Open();
        System.Data.SqlClient.SqlDataAdapter da=new SqlDataAdapter(Strsql,conn);
        if(conn.State==ConnectionState.Open)
        {
            conn.Close();
        }        DataSet ds=new DataSet();
        if(ds.Tables.Count!=0)
        {
            ds.Clear();
        }
        else
        {
            //da.TableMappings.Clear();
            da.Fill(ds);    //*****
        }
        return  ds;
    }
    else
    {
        return null;
    }
}

解决方案 »

  1.   

    没有关闭连接
    在return ds 前 conn.Close();
      

  2.   

    conn.close过了的。不会把。 da就根本没有close方法。 我的是在winform下的我想是不是static 这个关键字搞得阿
      

  3.   

    为何要加static?!
    另外da不需要conn.open
      

  4.   

    我把static去掉了, 加到另外的一个类中,还是出现这个问题.我知道SqlDataAdapter 之前不需要conn.open 但是这并不妨碍阿. 并且我也在之前关闭了连接了的
      

  5.   

    同样的函数,在asp.net上面用就是没有问题的镇郁闷! 
      

  6.   

    用SqldataAdapter,就别con.Open(), con.Close()什么的了Adapter会自动管理connection的,不用手动open, closeAdapter使用完连接后,会把connection恢复到使用之前的状态
      

  7.   

    按道理,我的所有操作都是在此函数中进行的.
    coon是new的,
    dataset 是new的
    dataAdapter也是new的。为什么还会出现这个问题。
      

  8.   

    the original error message is:
    **********************************************************
    An unhandled exception of type 'System.Data.SqlClient.SqlException' occurred in system.data.dllAdditional information: System error.
    **********************************************************
    是不是我的数据库有问题,验证方面的。
      

  9.   

    更加变态的是, 我在其他的地方反复的调用此Query函数没有问题。
    但就是将数据邦定到datagrid的时候只有第一次可以, 以后就会出现 “系统错误”
    抓狂了……
      

  10.   

    不用staticpublic DataSet SelectData(string SQL,string TableName)
    {
        string strSQL=SQL;
        myConn=new sqlConnection(stringConnection);
        da=new SqlDataAdapter(strSQL,myConn);
        da.fill(ds,TableName);
        return ds;
    }
      

  11.   

    在對數據綁定前:
    this.dataGrid1.dataSource=null;
      

  12.   

    我在邦定数据之前写了的this.dataGrid1.DataSource=null;
    this.dataGrid1.DataBindings.Clear();没有任何用处。
      

  13.   

    我解决了,不是我的这部分代有问题,  是我的sql语句产生错误导致的.谢谢大家的帮忙!