ORA-03114: not connected to ORACLE
数据库:Oracle 817,OracleClient,net framework 1.1
以下是我的公共数据访问类(我想应该代码上没有什么不对的。用完后链接也都是释放的)
using System.Data.OracleClient;
public class ComFun
{
static public IDataReader ComFun_ExeReader(string Sql)
{
OracleConnection Conn=new OracleConnection(ConfigurationSettings.AppSettings["OracleConnectionString"]);
OracleCommand Cmd=new OracleCommand();
Cmd.CommandText=Sql;
Cmd.Connection=Conn;
Conn.Open();
OracleDataReader Reader=Cmd.ExecuteReader(CommandBehavior.CloseConnection);
return Reader;
}
static public DataSet ComFun_ExeDataset(string Sql)
{
OracleConnection Conn=new OracleConnection(ConfigurationSettings.AppSettings["OracleConnectionString"]);
OracleDataAdapter Ad=new OracleDataAdapter(Sql,Conn);
DataSet ds=new DataSet();
Conn.Open();
Ad.Fill(ds);
Conn.Close();
return ds;
}
static public Object ComFun_ExeScalar(string Sql)
{
OracleConnection Conn=new OracleConnection(ConfigurationSettings.AppSettings["OracleConnectionString"]);
OracleCommand Cmd=new OracleCommand();
Cmd.CommandText=Sql;
Cmd.Connection=Conn;
Conn.Open();
Object Obj=Cmd.ExecuteScalar();
Conn.Close();
return Obj;
}
}
在其他地方我是这么用这个公共类的
try{
string sql="select person_name,person_age from person";
IDataReader Reader=ComFun.ComFun_ExeReader(sql);
DropList.DataSource=Reader;
DropList.DataText.....="person_name";
DropList.DataBind();
Reader.Close();Reader.Dispose();
Session["Result"]="Success";
}
catch(Exception E)
{
Session["Result"]=E.Message;
}
finally
{
Response.Redirect("Result.aspx");
}
结果程序有时会出现"ORA-03114: not connected to ORACLE"的异常。
大多数时候又是运行好好的。没有规律。为什么?
传说当年Asp时代是每次用完后就释放掉的。第2次用时是重新登录数据库,然后接链接,所以不会有这个问题。难到是.net缓冲池的问题?