C#静态数据库类?

前端之家收集整理的这篇文章主要介绍了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的查询结果.

原文链接:https://www.f2er.com/csharp/98340.html

猜你在找的C#相关文章