图书管理操作类(C#)

 using System;
using System.Data.SqlClient;
using System.Collections;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.Configuration;

namespace book.DAL
{
 /// <summary>
 /// DBController 的摘要说明。
 /// </summary>
 public class DBController
 {
  
  private string connectingstring;
  private SqlConnection myConn;
  private DataSet ds;
  private SqlDataAdapter myAdapter;
  private SqlCommand myCmd;
  
  public DBController()
  {
   connectingstring = System.Configuration.ConfigurationSettings.AppSettings[ "ConnectionString" ];
   myConn = new SqlConnection(connectingstring);
  }
          //打开关闭连接
  public void open()
  {
      myConn.Open();
  }

  public void Close()
  {
   myConn.Close();
  }
  public DataSet GetDS()
  {
   return ds;
  }
//*****************************************************DAL*****************************************************//
 
         //input:sqlstr,SQL字符串,output:null
  public void Fill(string sqlstr)
  {
   myAdapter = new SqlDataAdapter(sqlstr, myConn);
   ds = new DataSet();
   myAdapter.Fill(ds);
  }
        //input:SQL字符串.output:null
  public void ExecNonSql(string sqlstr)
  {
   if (myConn.State == ConnectionState.Closed)
   {
    myConn.Open();
   }
   myCmd = new SqlCommand(sqlstr, myConn);
   myCmd.ExecuteNonQuery();
   myCmd.Dispose();
   Close();
  }
         // 输入参数:的SQL字符串.返回SqlDataReader对象
  public SqlDataReader ExecReaderSql(string sqlstr)
  {
   if (myConn.State == ConnectionState.Closed)
   {
    myConn.Open();
   }
   myCmd = new SqlCommand(sqlstr, myConn);
   SqlDataReader reader;
   reader = myCmd.ExecuteReader();
   myCmd.Dispose();
   return reader;
  }
         //input:SQL字符串;myDBGrd,需数据绑定的DataGrid控件.output:null
  public void BindDBGrd(string sqlstr, DataGrid myDBGrd)
  {
   if (myConn.State == ConnectionState.Closed)
   {
    myConn.Open();
   }
   Fill(sqlstr);
   myDBGrd.DataSource = ds.Tables[0].DefaultView;
   myDBGrd.DataBind();
  }
  //input:SQL字符串;myDBGrd,需数据绑定的DataGrid控件 ,SortExp:排序方式,output:null
  public void BindDBGrd(string sqlstr, DataGrid myDBGrd, object SortExp)
  {
   if (myConn.State == ConnectionState.Closed)
   {
    myConn.Open();
   }
   Fill(sqlstr);
   DataView dv = ds.Tables[0].DefaultView;
   dv.Sort =(string)SortExp;
   myDBGrd.DataSource = dv;
   myDBGrd.DataBind();
  }
      //input:sqlstr,查询的SQL字符串;myListBox:需数据绑定的ListBox控件.output:null
  public void BindListBox(string sqlstr, ListBox myListBox)
  {
   if (myConn.State == ConnectionState.Closed)
   {
    myConn.Open();
   }
   Fill(sqlstr);
   DataView dv = ds.Tables[0].DefaultView;
   myListBox.DataSource = dv;
   myListBox.DataBind();
  }
     //input:sqlstr,查询的SQL字符串;DrpDownList:需数据绑定的DropDownList控件.output:null
  public void BindDrpDownList(string sqlstr, DropDownList DrpDownList)
  {
   if (myConn.State == ConnectionState.Closed)
   {
    myConn.Open();
   }
   Fill(sqlstr);
   DrpDownList.DataSource = ds.Tables[0].DefaultView;
   DrpDownList.DataBind();
   Close();
  }
        //input:string name,pwd.output:1 or -1
  public int CheckUserberInfo(string Userstr, string Pwdstr)
  {
   if (myConn.State == ConnectionState.Closed)
   {
    myConn.Open();
   }
   string sqlstr;
   if (Pwdstr == "")
   {
    sqlstr = "select * from UserInfo where UserID='" + Userstr.Trim() + "' and Pass is null";
   }
   else
   {
    sqlstr = "select * from UserInfo where UserID='" + Userstr.Trim() + "' and Pass='" + Pwdstr + "'";
   }
   Fill(sqlstr);
   if (ds.Tables[0].Rows.Count == 0)
   {
    Close();
    return -1;
   }
   ds.Clear();
   Close();
   return 1;
  }
          //获取SQL查询记录条数
  public int GetRowsNum(string sqlstr)
  {
   if (myConn.State == ConnectionState.Closed)
   {
    myConn.Open();
   }
   Fill(sqlstr);
   Close();
   return ds.Tables[0].Rows.Count;
  }
 }
 
//*****************************************************BLL******************************************************************//

 public class BookController
 {
  private DBController obj;

  public BookController()
  {
   obj = new DBController();
  }
         //获取用户最大的借书量
  public int GetMax(string UserID)
  {
   string sqlstr = "select BookNum from UserInfo,RoleInfo where UserInfo.RoleID=RoleInfo.RoleID";
   SqlDataReader myreader = obj.ExecReaderSql(sqlstr);
   int num = 0;
   if (myreader.Read())
   {
    num =(int) myreader["BookNum"];
   }
   obj.Close();
   return num;
  }
          //获取该用户允许借阅时间
  public int GetBookDate(string UserID)
  {
   string sqlstr = "select BookDate from UserInfo,RoleInfo where UserInfo.RoleID=RoleInfo.RoleID and UserID='" + UserID + "'";
   SqlDataReader myreader = obj.ExecReaderSql(sqlstr);
   int num = 0;
   if (myreader.Read())
   {
    num =(int) myreader["BookDate"];
   }
   obj.Close();
   return num;
  }
         //判断当前书的状态,-2:表示该书不存在或不在流通中,-1:表示被借,0:已经被续借状态,1:可借
  public int GetBookState(string BookID)
  {
   string sqlstr = "select * from BookInfo where BookState=1 and BookID=" + BookID;
   if (obj.GetRowsNum(sqlstr) == 0)
   {
    return -2;
   }
   sqlstr = "select * from LendInfo where IsBack=0 and BookID =" + BookID;
   if (obj.GetRowsNum(sqlstr) != 0)
   {
    return -1;
   }
   sqlstr = "select * from BookingInfo where BookID=" + BookID;
   if (obj.GetRowsNum(sqlstr) != 0)
   {
    return 0;
   }
   return 1;
  }
           //判断用户是否预定该本书
  public bool IsUserBooking(string UserID, string BookID)
  {
   string sqlstr = "select * from BookingInfo where UserID='" + UserID + "' and BookID=" + BookID;
   if (obj.GetRowsNum(sqlstr) == 0)
   {
    return false;
   }
   else
   {
    return true;
   }
  }
         //获取用户当前借书数量
  public int GetCurNum(string UserID)
  {
   string sqlstr = "select count(*) as Num from LendInfo where UserID='" + UserID + "' and IsBack=0 ";
   SqlDataReader myreader = obj.ExecReaderSql(sqlstr);
   int num = 0;
   if (myreader.Read())
   {
    num =(int) myreader["Num"];
   }
   obj.Close();
   return num;
  }
          //进行借书操作,如果借书成功,返回true,否则返回false
  public bool LendBook(string UserID, string BookID)
  {
   int datenum = GetBookDate(UserID);
   System.DateTime nowdate = System.DateTime.Now;
   System.DateTime ReturnDate = nowdate.AddDays(datenum);
   string sqlstr = "insert into LendInfo(BookID,UserID,LendDate,ReturnDate,IsBack)values( ";
   sqlstr += "'" + BookID + "'";
   sqlstr += ",'" + UserID + "'";
   sqlstr += ",'" + nowdate.ToShortDateString() + "'";
   sqlstr += ",'" + ReturnDate.ToShortDateString() + "'";
   sqlstr += ",0)";
   obj.ExecNonSql(sqlstr);
   if (IsUserBooking(UserID, BookID))
   {
    sqlstr = "delete from BookingInfo where BookID=" + BookID + " and UserID='" + UserID + "'";
    obj.ExecNonSql(sqlstr);
   }
   return true;
  }
           //取消预约书信息
  public bool CancelBooking(string UserID, string BookID)
  {
   if (IsUserBooking(UserID, BookID))
   {
    string sqlstr = "delete from BookingInfo where BookID=" + BookID + " and UserID='" + UserID + "'";
    obj.ExecNonSql(sqlstr);
   }
   return true;
  }
             //续借图书
  public bool ReLendBook(string UserID, string BookID)
  {
   int bookdate = GetBookDate(UserID);
   string sqlstr = "update LendInfo set ReturnDate=ReturnDate+" + bookdate.ToString() + " where IsBack=0 and BookID=" + BookID + " and UserID='" + UserID + "'";
   obj.ExecNonSql(sqlstr);
   return true;
  }
           //还书操作
  public bool ReturnBook(string UserID, string BookID)
  {
   string sqlstr = "update LendInfo set IsBack=1 where BookID=" + BookID + " and UserID='" + UserID + "'";
   obj.ExecNonSql(sqlstr);
         //修改预约状态
   if (this.GetBookState(BookID) == 0)
   {
    sqlstr = "update BookingInfo set BookingState=1 where BookID=" + BookID;
    obj.ExecNonSql(sqlstr);
   }
   return true;
  }
          //预约图书信息
  public void BookingBook(string userID, string BookID)
  {
   string sqlstr = "insert into BookingInfo(BookID,UserID,BookingState)values( ";
   sqlstr += BookID + ",'" + userID + "',0)";
  }
           //是否允许预约
  public bool AllowBooking(string UserID)
  {
   string sqlstr = "select * from UserInfo,RoleInfo where UserInfo.RoleID=RoleInfo.RoleID and AllowBooking=1 and UserID='" + UserID + "'";
   if (obj.GetRowsNum(sqlstr) == 0)
   {
    return false;
   }
   else
   {
    return true;
   }
  }
           //是否允许续借
  public bool AllowReLend(string UserID)
  {
   string sqlstr = "select * from UserInfo,RoleInfo where UserInfo.RoleID=RoleInfo.RoleID and ReLend=1 and UserID='" + UserID + "'";
   if (obj.GetRowsNum(sqlstr) == 0)
   {
    return false;
   }
   else
   {
    return true;
   }
  }
          //是否为图书管理员
  public bool IsBookManager(string UserID)
  {
   string sqlstr = "select * from UserInfo,RoleInfo where UserInfo.RoleID=RoleInfo.RoleID and IsBookManager=1 and UserID='" + UserID + "'";
   if (obj.GetRowsNum(sqlstr) == 0)
   {
    return false;
   }
   else
   {
    return true;
   }
  }
          //是否为系统管理员
  public bool IsSysManager(string UserID)
  {
   string sqlstr = "select * from UserInfo,RoleInfo where UserInfo.RoleID=RoleInfo.RoleID and IsSysManager=1 and UserID='" + UserID + "'";
   if (obj.GetRowsNum(sqlstr) == 0)
   {
    return false;
   }
   else
   {
    return true;
   }
  }
 }
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值