using
System;
using System.Data;
using System.Data.SqlClient;
using System.Configuration;
namespace Compoment
{
/**//// <summary>
/// CheckUser 的摘要说明。
/// </summary>
public class MyUser
{
private static SqlConnection MyConnection=null;
private static DataSet MyDataSet=null;
public MyUser()
{
//
// TODO: 在此处添加构造函数逻辑
//
}
~MyUser()
{
}
public static void Open()
{//建立数据库连接
if(MyConnection==null)
MyConnection=new SqlConnection(ConfigurationSettings.AppSettings["dsn"]);
if(MyDataSet==null)
MyDataSet=new DataSet();
if(MyConnection.State!=ConnectionState.Open)
MyConnection.Open();
}
public static void Close()
{
if(MyConnection!=null)
{
if(MyConnection.State!=ConnectionState.Closed)
MyConnection.Close();
MyConnection.Dispose();
MyConnection=null;
}
if(MyDataSet!=null)
{
MyDataSet.Dispose();
MyDataSet=null;
}
}
用户管理#region 用户管理
public static void AddUser(int UserTypeId,string RealName,string LoginName,string Password,string Email,int Active)
{
//添加用户
SqlCommand MyCommand=new SqlCommand();
MyCommand.Connection=MyConnection;
MyCommand.CommandText="AddUser";
MyCommand.CommandType=CommandType.StoredProcedure;
MyCommand.Parameters.Add("@usertypeid",UserTypeId);
MyCommand.Parameters.Add("@realname",RealName);
MyCommand.Parameters.Add("@loginname",LoginName);
MyCommand.Parameters.Add("@password",Password);
MyCommand.Parameters.Add("@email",Email);
MyCommand.Parameters.Add("@Active",Active);
MyCommand.ExecuteNonQuery();
}
public static DataView GetUserList(string strFieldList)
{
//取得用户列表
SqlCommand MyCommand=new SqlCommand();
MyCommand.Connection=MyConnection;
MyCommand.CommandType=CommandType.StoredProcedure;
MyCommand.CommandText="GetUserList";
MyCommand.Parameters.Add("@FldList",strFieldList);
SqlDataAdapter MyAdapter=new SqlDataAdapter(MyCommand);
MyAdapter.Fill(MyDataSet,"UserList");
return(MyDataSet.Tables["UserList"].DefaultView);
}
public static DataView GetUserList(string strFieldList,int UserTypeId)
{
//取得某个类别的用户列表
SqlCommand MyCommand=new SqlCommand();
MyCommand.Connection=MyConnection;
MyCommand.CommandText="GetUserList";
MyCommand.CommandType=CommandType.StoredProcedure;
MyCommand.Parameters.Add("@FldList",strFieldList);
MyCommand.Parameters.Add("@UserTypeId",UserTypeId.ToString());
SqlDataAdapter MyAdapter=new SqlDataAdapter(MyCommand);
MyAdapter.Fill(MyDataSet,"UserList");
return(MyDataSet.Tables["UserList"].DefaultView);
}
#endregion
}
}
using System.Data;
using System.Data.SqlClient;
using System.Configuration;
namespace Compoment
{
/**//// <summary>
/// CheckUser 的摘要说明。
/// </summary>
public class MyUser
{
private static SqlConnection MyConnection=null;
private static DataSet MyDataSet=null;
public MyUser()
{
//
// TODO: 在此处添加构造函数逻辑
//
}
~MyUser()
{
}
public static void Open()
{//建立数据库连接
if(MyConnection==null)
MyConnection=new SqlConnection(ConfigurationSettings.AppSettings["dsn"]);
if(MyDataSet==null)
MyDataSet=new DataSet();
if(MyConnection.State!=ConnectionState.Open)
MyConnection.Open();
}
public static void Close()
{
if(MyConnection!=null)
{
if(MyConnection.State!=ConnectionState.Closed)
MyConnection.Close();
MyConnection.Dispose();
MyConnection=null;
}
if(MyDataSet!=null)
{
MyDataSet.Dispose();
MyDataSet=null;
}
}
用户管理#region 用户管理
public static void AddUser(int UserTypeId,string RealName,string LoginName,string Password,string Email,int Active)
{
//添加用户
SqlCommand MyCommand=new SqlCommand();
MyCommand.Connection=MyConnection;
MyCommand.CommandText="AddUser";
MyCommand.CommandType=CommandType.StoredProcedure;
MyCommand.Parameters.Add("@usertypeid",UserTypeId);
MyCommand.Parameters.Add("@realname",RealName);
MyCommand.Parameters.Add("@loginname",LoginName);
MyCommand.Parameters.Add("@password",Password);
MyCommand.Parameters.Add("@email",Email);
MyCommand.Parameters.Add("@Active",Active);
MyCommand.ExecuteNonQuery();
}
public static DataView GetUserList(string strFieldList)
{
//取得用户列表
SqlCommand MyCommand=new SqlCommand();
MyCommand.Connection=MyConnection;
MyCommand.CommandType=CommandType.StoredProcedure;
MyCommand.CommandText="GetUserList";
MyCommand.Parameters.Add("@FldList",strFieldList);
SqlDataAdapter MyAdapter=new SqlDataAdapter(MyCommand);
MyAdapter.Fill(MyDataSet,"UserList");
return(MyDataSet.Tables["UserList"].DefaultView);
}
public static DataView GetUserList(string strFieldList,int UserTypeId)
{
//取得某个类别的用户列表
SqlCommand MyCommand=new SqlCommand();
MyCommand.Connection=MyConnection;
MyCommand.CommandText="GetUserList";
MyCommand.CommandType=CommandType.StoredProcedure;
MyCommand.Parameters.Add("@FldList",strFieldList);
MyCommand.Parameters.Add("@UserTypeId",UserTypeId.ToString());
SqlDataAdapter MyAdapter=new SqlDataAdapter(MyCommand);
MyAdapter.Fill(MyDataSet,"UserList");
return(MyDataSet.Tables["UserList"].DefaultView);
}
#endregion
}
}
上面的代码是再常见不过的一段用于管理数据库中用户的数据存取类了
拥有一个OPEN方法,一个CLOSE方法以及若干个其他方法
其中有一个静态的CONNECTION成员存放数据库连接,一个静态的DATASET对象来存放数据集
在使用时,先用OPEN方法初始化数据库连接及数据集,再进行其他操作,完毕后用CLOSE方法来进行一些清理
现在的问题是
我不知道这样使用静态的CONNECTION对象和DATASET对象,会不会在同时有多个用户请求同一页面时导致混乱而出错
比如,A,B两用户同时请求同一页面,A用户打开了CONNECTION,正在操作数据,而B用户却恰恰要去关闭这个CONNECTION,这样
会不会造成冲突,导致系统出错呢?
望各位大虾赐教