对着月亮唱歌的幸福生活

即便是莲藕内心真空之所,也有根根柔丝穿过。
  博客园  :: 首页  :: 联系 :: 管理

经典总结:数据访问类继承于基类

Posted on 2009-05-31 11:13  对月而歌  阅读(233)  评论(0)    收藏  举报
using System;
using System.Data;
using System.Data.Common;
using System.Configuration;
using System.Collections.Generic;
using Config;
using Model;

namespace DeviceManager.DAL
{
    
public class UserDataAccess : DataAccessObject
    {
        
private static UserDataAccess m_instance;
        
public UserDataAccess() : base(MineConfig.GetConStr(), MineConfig.providerName()) { }
        
public static UserDataAccess Instance
        {
            
get
            {
                
if (m_instance == null)
                {
                    m_instance 
= new UserDataAccess();
                }
                
return m_instance;
            }
        }

        
private User GetUserClass(DbDataReader read)
        {
            User c 
= new User();
            
try
            {
                c.ID 
= (int)read["ID"];
                c.UserName 
= read["UserName"].ToString();
                c.UserCategory 
= (int)read["Usercategory"];
                c.PassWord 
= read["PassWord"].ToString();
                
return c;
            }
            
catch 
            {
                
throw new Exception("User对象创建失败,数据库访问失败或数据不完整");
            }        
        }
        
public List<User> GetUserList()
        {
            List
<User> c = new List<User>();
            
try
            {
                
using (DbDataReader reader = ExecuteReader(CommandType.StoredProcedure, "UP_User_GetList"))
                {
                    
while (reader.Read())
                    {
                        c.Add(GetUserClass(reader));
                    }
                }
                
return c;
            }
            
catch
            {
                
throw new Exception("获取用户列表失败");
            }
        }
        
public User GetUser(string userName)
        {
            User c 
= new User();
            
try
            {
                DbParameter pUserName 
= CreateParameter("UserName", DbType.String);
                pUserName.Value 
= userName;

                
using (DbDataReader reader = ExecuteReader(CommandType.StoredProcedure, "GetUserByUserName", pUserName))
                {
                    
while (reader.Read())
                    {
                        c 
= GetUserClass(reader);
                    }
                }
                
return c;
            }
            
catch(Exception ex)
            { 
throw ex; }
        }
        
public bool DeleteUser(int id)
        {
            
try
            {
                DbParameter pId 
= CreateParameter("ID", DbType.Int32);
                pId.Value 
= id;
                
int rest = ExecuteNonQuery(CommandType.StoredProcedure, "pId", pId);
                
return (rest == 1);
            }
            
catch(Exception ex)
            {
                
throw ex;
            }
        }
        
public bool CreateUser(string userName, string passWrod,int userCategory)
        {
            
try
            {
                DbParameter pUserName 
= CreateParameter("UserName", DbType.String);
                pUserName.Value 
= userName;
                DbParameter pPawwWord 
= CreateParameter("PassWord", DbType.String);
                pPawwWord.Value 
= passWrod;
                DbParameter pUserCategory 
= CreateParameter("UserCategory", DbType.Int32);
                pUserCategory.Value 
= userCategory;
                
int rest = ExecuteNonQuery(CommandType.StoredProcedure, "UP_User_ADD", pUserName, pPawwWord, pUserCategory);
                
return (rest == 1);
            }
            
catch (Exception ex)
            {
                
throw ex;
            }
        }
        
public bool UpDataUser(string userName, string passWrod, int userCategory)
        {
            
try
            {
                DbParameter pUserName 
= CreateParameter("UserName", DbType.String);
                pUserName.Value 
= userName;
                DbParameter pPawwWord 
= CreateParameter("PassWord", DbType.String);
                pPawwWord.Value 
= passWrod;
                DbParameter pUserCategory 
= CreateParameter("UserCategory", DbType.Int32);
                pUserCategory.Value 
= userCategory;
                
int rest = ExecuteNonQuery(CommandType.StoredProcedure, "UP_User_Update", pUserName, pPawwWord, pUserCategory);
                
return (rest == 1);
            }
            
catch (Exception ex)
            {
                
throw ex;
            }
        }
        
public bool IsUserName(string userName)
        {
            
try
            {
                DbParameter pUserName 
= CreateParameter("UserName", DbType.String);
                pUserName.Value 
= userName;
                
int rest = (int)ExecuteScalar(CommandType.StoredProcedure, "UP_User_Exists",pUserName);
                
return (rest >= 1);
            }
            
catch (Exception ex)
            {
                
throw ex;
            }
        }
      
        
    }
}