函数中,但有Return值的时候,要注意释放对象的时候,要在return关键字前面,如:
public string Str_Class(int EB_ID) {
Exsql.Open();
string sql = "select * from EB_ProductClass where EB_ID="+EB_ID;
SqlCommand Comm = new SqlCommand(sql, Exsql.con);
Comm.CommandType=CommandType.Text ;
Comm.CommandText=sql;
SqlDataReader dr = Comm.ExecuteReader(CommandBehavior.CloseConnection);
string content = "";
string Nbsp = "";
if (dr.Read())
{
if (Convert.ToInt16(dr["EB_ParentID"]) == 0)
{
content += " <b>" + dr["EB_ClassName"].ToString()+"</b>";
}
else
{
int STM_Path = Convert.ToInt16(dr["EB_DePath"]);
for (int i = 0; i < STM_Path; i++)
{
//每一层加4个空格;
Nbsp += " ";
}
content += Nbsp + " ├" + dr["EB_ClassName"].ToString();
}
}
else {
}
dr.Dispose();
dr.Close();
Exsql.Close();
return content;
}
如果在return content後释放对象的话,会出现没释放的情况