不知道该怎么办
我写的一个查询数据库的函数,如下,在第一次运行的时候,没有问题。但是连续第二次运行的时候,就会在标注的地方报错。说什么系统错误,郁闷的就是这种不清不楚的提示。 希望大家不吝赐教!
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;
}
}
------解决方案--------------------没有关闭连接
在return ds 前 conn.Close();
------解决方案--------------------用SqldataAdapter,就别con.Open(), con.Close()什么的了
Adapter会自动管理connection的,不用手动open, close
Adapter使用完连接后,会把connection恢复到使用之前的状态
------解决方案--------------------不用static
public DataSet SelectData(string SQL,string TableName)
{
string strSQL=SQL;
myConn=new sqlConnection(stringConnection);
da=new SqlDataAdapter(strSQL,myConn);
da.fill(ds,TableName);
return ds;
}
------解决方案--------------------在對數據綁定前:
this.dataGrid1.dataSource=null;