日期:2014-05-17  浏览次数:21002 次

C# webservice如何創建一個公用的數據庫連線
写了一个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,所有有些理解错误的地方请大侠理解!并不吝赐教!
谢谢!
------解决方案--------------------
每个函数查询的时候 打开数据库链接,用完关闭
------解决方案--------------------
GetConn();
是什么?
自己创建的>?