写了一个webservice,提供几个function都是需要连接数据库查询数据并作返回。
每一个function都要去创建一个数据库连线:[WebMethod(Description = "數據集")]
public string GetDatastring(string ALine)
{
OracleConnection myconn = this.GetConn();
GetStartTime(ALine);
DataSet dst = new DataSet();
string tmpSQL = @"select * from tbltmp where fline='{0}' ";
tmpSQL = String.Format(tmpSQL, ALine);
try
{
OracleDataAdapter dad = new OracleDataAdapter(tmpSQL, myconn);
//dad.FillSchema(dst, SchemaType.Mapped, "Temp");
dad.Fill(dst, "Temp"); //return dst; string retv = DNDDSToCDS.AllstringToClientDataSet(dst, "Temp");
return retv;
}
finally
{
myconn.Close();
}
}
其他的都类似吧。。现在如果每一个function都去创建一个数据库连线。多个程序访问webservice就会有很多个数据库连线(我在服务器上用netstat -n 查看有多个1521的连线(oracle端口号))。
本来采用webservice是为了减少数据库连线数,现在它一个程式就创建这么多连线,肯定是不行的。
所有想请教各位,webservice是否能公用一个数据库连线?(myConn 只使用一个)?
我是刚开始学C#用webservice,所有有些理解错误的地方请大侠理解!并不吝赐教!
谢谢!
每一个function都要去创建一个数据库连线:[WebMethod(Description = "數據集")]
public string GetDatastring(string ALine)
{
OracleConnection myconn = this.GetConn();
GetStartTime(ALine);
DataSet dst = new DataSet();
string tmpSQL = @"select * from tbltmp where fline='{0}' ";
tmpSQL = String.Format(tmpSQL, ALine);
try
{
OracleDataAdapter dad = new OracleDataAdapter(tmpSQL, myconn);
//dad.FillSchema(dst, SchemaType.Mapped, "Temp");
dad.Fill(dst, "Temp"); //return dst; string retv = DNDDSToCDS.AllstringToClientDataSet(dst, "Temp");
return retv;
}
finally
{
myconn.Close();
}
}
其他的都类似吧。。现在如果每一个function都去创建一个数据库连线。多个程序访问webservice就会有很多个数据库连线(我在服务器上用netstat -n 查看有多个1521的连线(oracle端口号))。
本来采用webservice是为了减少数据库连线数,现在它一个程式就创建这么多连线,肯定是不行的。
所有想请教各位,webservice是否能公用一个数据库连线?(myConn 只使用一个)?
我是刚开始学C#用webservice,所有有些理解错误的地方请大侠理解!并不吝赐教!
谢谢!
myconn.Close();
可是我在服务器上查看连线数还是会越来越多!
不知道为什么!
是什么?
自己创建的>?
private OracleConnection GetConn()
{
try
{
this._connString = DBConnString.Buf_BuieldDbsConnString();
OracleConnection Connection = new OracleConnection(this._connString);
Connection.Open();
return Connection;
}
catch (Exception ex)
{
_ErrorText = ex.Message;
throw;
}
}这个是为了读取一个自己指定的位置的数据库连线文件。里面包含加密的一些处理!
为了每次调用方便。所以写成这样!
我是个C#新手,刚从delphi转的!有些地方解释的不清楚。请谅解!
webservice中能否像winform程序一样。共用一个数据库连线!
这个该怎么去创建!
请了解的大侠给点指导!
服务器上有跑另外一个程式!创建了数据库连线没有释放!
害的我自己找了半天原因!
看来C#还是要遵循delphi一样的原则,哪里调用哪里释放!
切记,切记。。