当前位置:  开发笔记 > 编程语言 > 正文

C#静态数据库类?

如何解决《C#静态数据库类?》经验,为你挑选了1个好方法。

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

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,string [,] parms)

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

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



1> Razzie..:

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

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

推荐阅读
php
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有