一个数据存取类的代码,请高手帮忙分析和指定是否有误!

None.gif using  System;
None.gif
using  System.Data;
None.gif
using  System.Data.SqlClient;
None.gif
using  System.Configuration;
None.gif
None.gif
namespace  Compoment
ExpandedBlockStart.gifContractedBlock.gif
dot.gif {
ExpandedSubBlockStart.gifContractedSubBlock.gif    
/**//// <summary>
InBlock.gif    
/// CheckUser 的摘要说明。
ExpandedSubBlockEnd.gif    
/// </summary>

InBlock.gif    public class MyUser
ExpandedSubBlockStart.gifContractedSubBlock.gif    
dot.gif{
InBlock.gif        
private static SqlConnection MyConnection=null;
InBlock.gif        
private static DataSet MyDataSet=null;
InBlock.gif
InBlock.gif        
public MyUser()
ExpandedSubBlockStart.gifContractedSubBlock.gif        
dot.gif{
InBlock.gif            
//
InBlock.gif            
// TODO: 在此处添加构造函数逻辑
InBlock.gif            
//
ExpandedSubBlockEnd.gif
        }

InBlock.gif
InBlock.gif        
~MyUser()
ExpandedSubBlockStart.gifContractedSubBlock.gif        
dot.gif{
ExpandedSubBlockEnd.gif        }

InBlock.gif
InBlock.gif        
public static void Open()
ExpandedSubBlockStart.gifContractedSubBlock.gif        
dot.gif{//建立数据库连接
InBlock.gif
            if(MyConnection==null)
InBlock.gif                MyConnection
=new SqlConnection(ConfigurationSettings.AppSettings["dsn"]);
InBlock.gif            
if(MyDataSet==null)
InBlock.gif                MyDataSet
=new DataSet();
InBlock.gif            
if(MyConnection.State!=ConnectionState.Open)
InBlock.gif                MyConnection.Open();            
ExpandedSubBlockEnd.gif        }

InBlock.gif
InBlock.gif        
public static void Close()
ExpandedSubBlockStart.gifContractedSubBlock.gif        
dot.gif{
InBlock.gif            
if(MyConnection!=null)
ExpandedSubBlockStart.gifContractedSubBlock.gif            
dot.gif{
InBlock.gif                
if(MyConnection.State!=ConnectionState.Closed)
InBlock.gif                    MyConnection.Close();
InBlock.gif                MyConnection.Dispose();
InBlock.gif                MyConnection
=null;
ExpandedSubBlockEnd.gif            }

InBlock.gif            
if(MyDataSet!=null)
ExpandedSubBlockStart.gifContractedSubBlock.gif            
dot.gif{
InBlock.gif                MyDataSet.Dispose();
InBlock.gif                MyDataSet
=null;
ExpandedSubBlockEnd.gif            }

ExpandedSubBlockEnd.gif        }

InBlock.gif
ContractedSubBlock.gifExpandedSubBlockStart.gif        
用户管理#region 用户管理
InBlock.gif        
public static void AddUser(int UserTypeId,string RealName,string LoginName,string Password,string Email,int Active)
ExpandedSubBlockStart.gifContractedSubBlock.gif        
dot.gif{
InBlock.gif            
//添加用户
InBlock.gif
            SqlCommand MyCommand=new SqlCommand();
InBlock.gif            MyCommand.Connection
=MyConnection;            
InBlock.gif            MyCommand.CommandText
="AddUser";
InBlock.gif            MyCommand.CommandType
=CommandType.StoredProcedure;
InBlock.gif            MyCommand.Parameters.Add(
"@usertypeid",UserTypeId);
InBlock.gif            MyCommand.Parameters.Add(
"@realname",RealName);
InBlock.gif            MyCommand.Parameters.Add(
"@loginname",LoginName);
InBlock.gif            MyCommand.Parameters.Add(
"@password",Password);
InBlock.gif            MyCommand.Parameters.Add(
"@email",Email);
InBlock.gif            MyCommand.Parameters.Add(
"@Active",Active);
InBlock.gif            MyCommand.ExecuteNonQuery();
InBlock.gif            
ExpandedSubBlockEnd.gif        }

InBlock.gif
InBlock.gif        
public static DataView GetUserList(string strFieldList)
ExpandedSubBlockStart.gifContractedSubBlock.gif        
dot.gif{
InBlock.gif            
//取得用户列表
InBlock.gif
            SqlCommand MyCommand=new SqlCommand();
InBlock.gif            MyCommand.Connection
=MyConnection;            
InBlock.gif            MyCommand.CommandType
=CommandType.StoredProcedure;
InBlock.gif            MyCommand.CommandText
="GetUserList";            
InBlock.gif            MyCommand.Parameters.Add(
"@FldList",strFieldList);
InBlock.gif            SqlDataAdapter MyAdapter
=new SqlDataAdapter(MyCommand);
InBlock.gif            MyAdapter.Fill(MyDataSet,
"UserList");
InBlock.gif            
return(MyDataSet.Tables["UserList"].DefaultView);
ExpandedSubBlockEnd.gif        }

InBlock.gif
InBlock.gif        
public static DataView GetUserList(string strFieldList,int UserTypeId)
ExpandedSubBlockStart.gifContractedSubBlock.gif        
dot.gif{
InBlock.gif            
//取得某个类别的用户列表
InBlock.gif
            SqlCommand MyCommand=new SqlCommand();
InBlock.gif            MyCommand.Connection
=MyConnection;            
InBlock.gif            MyCommand.CommandText
="GetUserList";
InBlock.gif            MyCommand.CommandType
=CommandType.StoredProcedure;
InBlock.gif            MyCommand.Parameters.Add(
"@FldList",strFieldList);
InBlock.gif            MyCommand.Parameters.Add(
"@UserTypeId",UserTypeId.ToString());
InBlock.gif            SqlDataAdapter MyAdapter
=new SqlDataAdapter(MyCommand);
InBlock.gif            MyAdapter.Fill(MyDataSet,
"UserList");
InBlock.gif            
return(MyDataSet.Tables["UserList"].DefaultView);
ExpandedSubBlockEnd.gif        }

ExpandedSubBlockEnd.gif
#endregion

ExpandedSubBlockEnd.gif}

ExpandedBlockEnd.gif}

上面的代码是再常见不过的一段用于管理数据库中用户的数据存取类了
拥有一个OPEN方法,一个CLOSE方法以及若干个其他方法
其中有一个静态的CONNECTION成员存放数据库连接,一个静态的DATASET对象来存放数据集
在使用时,先用OPEN方法初始化数据库连接及数据集,再进行其他操作,完毕后用CLOSE方法来进行一些清理
现在的问题是
我不知道这样使用静态的CONNECTION对象和DATASET对象,会不会在同时有多个用户请求同一页面时导致混乱而出错
比如,A,B两用户同时请求同一页面,A用户打开了CONNECTION,正在操作数据,而B用户却恰恰要去关闭这个CONNECTION,这样
会不会造成冲突,导致系统出错呢?

望各位大虾赐教

转载于:https://www.cnblogs.com/Heroman/archive/2004/12/28/83154.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值