1。请问调用一次ExecuteSP()的时候,是不是和数据库建立一次连接(oledbconnection),还是再程序中多次调用ExecuteSP()只打开一个数据库连接??2。数据库连接oledbconnection再这儿为何没有关闭那?private string GetConnectString()
{ string myConnectStr="Provider=MSDAORA.1;User ID=mall;Data Source=mall;Password=mall";
return myConnectStr;
}
//' DataAccess.CreateCommand()
// Creates a command object from a SQL string parameters, and the command type.
public OleDbCommand CreateCommand(string SQLText, OleDbParameter[] Param, CommandType SQLCmdType)
{
OleDbConnection myConnection= new OleDbConnection (GetConnectString());
OleDbCommand myCommand = new OleDbCommand (SQLText, myConnection);
myCommand.CommandType = SQLCmdType;
if (Param!=null)
{
foreach (OleDbParameter ParamTemp in Param)
{
myCommand.Parameters.Add(ParamTemp);
}
}
try
{
myConnection.Open();
return myCommand;
} catch (Exception e)
{
LogError(e);
}
return null;
}
//' DataAccess.ExecuteSP()
// Executes a stored procedure with parameters.Fills a DataTable object, returns True if success.
public bool ExecuteSP(string SProcName, OleDbParameter[] Param, DataSet MyDataSet)
{
OleDbCommand myCommand= CreateCommand(SProcName, Param, CommandType.StoredProcedure);
OleDbDataAdapter myDataAdapter = new OleDbDataAdapter (myCommand); try
{
myDataAdapter.Fill(MyDataSet);
return true;
}
catch (Exception e)
{
LogError(e);
return false;
}
}
2 没有关闭是错误的或者说这儿根本不需要打开,SqlDataAdapter自己Fill的时候会打开数据库
{
myConnection.Close();
}
能不能给自己加分呀?或者都来顶,来着给分。
这段程序根本就不需要打开,所以也不需要关闭
把
public OleDbCommand CreateCommand(string SQLText, OleDbParameter[] Param, CommandType SQLCmdType)
{
OleDbConnection myConnection= new OleDbConnection (GetConnectString());OleDbCommand myCommand = new OleDbCommand (SQLText, myConnection);
myCommand.CommandType = SQLCmdType;
if (Param!=null)
{
foreach (OleDbParameter ParamTemp in Param)
{
myCommand.Parameters.Add(ParamTemp);
}
}
try
{
myConnection.Open();
return myCommand;
} catch (Exception e)
{
LogError(e);
}
return null;
}
改为
SQLCmdType)
{
OleDbConnection myConnection= new OleDbConnection (GetConnectString());OleDbCommand myCommand = new OleDbCommand (SQLText, myConnection);
myCommand.CommandType = SQLCmdType;
if (Param!=null)
{
foreach (OleDbParameter ParamTemp in Param)
{
myCommand.Parameters.Add(ParamTemp);
}
} return myCommand;
}
是最好的解决方法