C#静态数据库类?

我有一个数据库类,其中包含以下方法

> public bool ExecuteUDIQuery(string query)// UDI = Update Delete Insert
> public bool ExecuteSelectQuery(string query)
> public bool ExecuteSP(string sp,string [,] parms)
> public int ExecuteSPReturnValue(string sp,] parms)

方法的结果存储在私有数据集或数据表中.这些对象被定义为getter.

大约有10个类使用Database类.每个类都创建一个Database类的对象.现在我正在考虑使Database类保持静态.这是一个好主意吗?如果是这样,为什么?不,为什么不呢?

解决方法

如果我理解,数据库类有一些存储查询结果的属性?如果是这样,则无法使它们成为静态,因为这不是线程安全的.如果查询的结果存储在这属性中,如果第二个查询在第一个查询之后立即执行会发生什么?它将存储在相同的静态变量中.对于Web应用程序也是如此:浏览站点的另一个用户的结果将改变第一个用户的结果.

编辑:总而言之,当您将查询结果存储在静态变量中时,请不要使该类保持静态,特别是在网站中使用该类时,不要使该类静态,因为属性值将在您网站的所有访问者之间共享.如果20个访问者同时进行查询,则访问者1将看到访问者20的查询结果.

相关文章

在要实现单例模式的类当中添加如下代码:实例化的时候:frmC...
1、如果制作圆角窗体,窗体先继承DOTNETBAR的:public parti...
根据网上资料,自己很粗略的实现了一个winform搜索提示,但是...
近期在做DSOFramer这个控件,打算自己弄一个自定义控件来封装...
今天玩了一把WMI,查询了一下电脑的硬件信息,感觉很多代码都...
最近在研究WinWordControl这个控件,因为上级要求在系统里,...