?? bookborrow.cs
字號:
//
this.label7.Location = new System.Drawing.Point(176, 36);
this.label7.Name = "label7";
this.label7.Size = new System.Drawing.Size(80, 16);
this.label7.TabIndex = 2;
this.label7.Text = "輸入后請回車";
//
// dataGrid1
//
this.dataGrid1.CaptionVisible = false;
this.dataGrid1.DataMember = "";
this.dataGrid1.HeaderForeColor = System.Drawing.SystemColors.ControlText;
this.dataGrid1.Location = new System.Drawing.Point(0, 184);
this.dataGrid1.Name = "dataGrid1";
this.dataGrid1.ReadOnly = true;
this.dataGrid1.Size = new System.Drawing.Size(672, 296);
this.dataGrid1.TabIndex = 36;
//
// label1
//
this.label1.Location = new System.Drawing.Point(152, 488);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(100, 16);
this.label1.TabIndex = 37;
this.label1.Text = "已借書";
//
// label2
//
this.label2.Location = new System.Drawing.Point(328, 488);
this.label2.Name = "label2";
this.label2.Size = new System.Drawing.Size(100, 16);
this.label2.TabIndex = 37;
this.label2.Text = "本次借書";
//
// BookBorrow
//
this.AutoScaleBaseSize = new System.Drawing.Size(6, 14);
this.ClientSize = new System.Drawing.Size(672, 509);
this.Controls.Add(this.label1);
this.Controls.Add(this.dataGrid1);
this.Controls.Add(this.groupBox1);
this.Controls.Add(this.toolBar1);
this.Controls.Add(this.groupBox2);
this.Controls.Add(this.label2);
this.Name = "BookBorrow";
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
this.Text = "【圖書借閱】";
this.Load += new System.EventHandler(this.BookBorrow_Load);
this.groupBox1.ResumeLayout(false);
this.groupBox2.ResumeLayout(false);
((System.ComponentModel.ISupportInitialize)(this.dataGrid1)).EndInit();
this.ResumeLayout(false);
}
#endregion
//----------創建窗體時,設置表格,并初始化變量--------------
private void BookBorrow_Load(object sender, System.EventArgs e)
{
this.DataGridStateControl();
totalCount=0;
thisCount=0;
}
//----------設置明細表格各列的屬性----------
private void DataGridStateControl()
{
tblBooks=new DataTable();
tblBooks.Columns.Add("狀態",typeof(string));
tblBooks.Columns.Add("圖書編號",typeof(string));
tblBooks.Columns.Add("書名",typeof(string));
tblBooks.Columns.Add("借閱時間",typeof(string));
tblBooks.Columns.Add("應還時間",typeof(string));
tblBooks.Columns.Add("出版社",typeof(string));
tblBooks.Columns.Add("價格",typeof(decimal));
this.dataGrid1.DataSource = tblBooks;
tblBooks.Rows.Add(tblBooks.NewRow()); //向表中添加一行
DataGridTableStyle ts = new DataGridTableStyle();
DataGridTextBoxColumn aColumnTextColumn;
ts.AllowSorting = false;
ts.AlternatingBackColor = Color.LightGray;
ts.MappingName = tblBooks.TableName;
int numCols = tblBooks.Columns.Count;
for (int i = 0;i< numCols;i++)
{
aColumnTextColumn = new DataGridTextBoxColumn();
if(i==2)
{
aColumnTextColumn.Width=140;//設置圖書名稱寬度
}
if ( i == 5 )
{
aColumnTextColumn.Width = 100;//設置出版社名稱列寬度
}
aColumnTextColumn.MappingName = tblBooks.Columns[i].ColumnName;
aColumnTextColumn.HeaderText = tblBooks.Columns[i].ColumnName;
aColumnTextColumn.NullText = "";
aColumnTextColumn.Format = "N"; //設置為數字格式顯示
ts.GridColumnStyles.Add(aColumnTextColumn);
}
dataGrid1.TableStyles.Add(ts);
}
//------------查詢并讀入讀者信息以及讀者已經借書的信息------------
private void txt1_KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e)
{
if(e.KeyChar==13&&txt1.Text.Trim()!="")
{
txt2.Clear();
txt3.Clear();
txt4.Clear();
this.showInfo();//顯示讀者信息
}
}
//------------顯示讀者信息和所借圖書信息----------------
private void showInfo()
{
string strConn = "workstation id=localhost;Integrated Security=SSPI;database=libbook";
SqlConnection cn=new SqlConnection(strConn);
cn.Open();
SqlCommand cmd=cn.CreateCommand();
if(rbt1.Checked)//判斷根據編號查詢讀者信息還是根據條形碼
{
cmd.CommandText="select a.姓名,a.類型,b.圖書冊書,a.編號 from 讀者信息 a,讀者類型 b"
+" where (a.類型=b.類型)and(a.編號='"+txt1.Text.Trim()+"')";
}
else
{
cmd.CommandText="select a.姓名,a.類型,b.圖書冊書,a.編號 from 讀者信息 a,讀者類型 b"
+" where (a.類型=b.類型)and(a.條形碼='"+txt1.Text.Trim()+"')";
}
SqlDataReader dr=cmd.ExecuteReader();//執行查詢,并讀入讀者數據
dr.Read();
if(dr.HasRows==false)//如未能查詢到讀者信息,則提示重新輸入
{
MessageBox.Show("無此讀者,請檢查后重新輸入","錯誤",MessageBoxButtons.OK,MessageBoxIcon.Error);
return;
}
else
{
txt2.Text=dr.GetValue(0).ToString().Trim();//顯示讀者信息
txt3.Text=dr.GetValue(1).ToString().Trim();
txt4.Text=dr.GetValue(2).ToString().Trim();
readerID=dr.GetValue(3).ToString().Trim();
}
dr.Close();
string strCmd="select a.狀態,a.圖書編號,b.書名,a.借閱時間,a.應還時間,b.出版社,b.價格"
+" from 圖書借閱 a,圖書信息 b where (a.圖書編號=b.編號)and(a.狀態='未還')"
+"and(讀者編號='"+readerID+"')";//查詢讀者所借書籍信息
SqlDataAdapter da=new SqlDataAdapter(strCmd,cn);
tblBooks.Clear();//清空借書記錄
da.Fill(tblBooks);//讀入讀者借閱圖書信息
totalCount=tblBooks.Rows.Count;//顯示已借書數量和本次借書數量
thisCount=0;
label1.Text="已借書"+totalCount.ToString()+"本";
label2.Text="本次借書0本";
groupBox2.Enabled=true;//允許借書
txt5.Focus();//光標移動到輸入圖書編號文本框處,開始借書
}
//--------------按回車借書---------------
private void txt5_KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e)
{
if(e.KeyChar==13&&txt5.Text.Trim()!="")
{
this.borrowBook();//讀者借書
}
}
//------------讀者借書-------------
private void borrowBook()
{
if(this.totalCount>=Convert.ToInt32(txt4.Text.Trim()))//如果借書達到上限,則不允許再借
{
MessageBox.Show("已經達到最大借書數量,請先歸還書籍后再借書","借書數量達到上限",MessageBoxButtons.OK,MessageBoxIcon.Information);
groupBox2.Enabled=false;
return;
}
string strConn = "workstation id=localhost;Integrated Security=SSPI;database=libbook";
SqlConnection cn=new SqlConnection(strConn);
cn.Open();
SqlCommand cmd=cn.CreateCommand();
DataRow aRow=tblBooks.NewRow();
string bookType;//保存新借圖書的類型
if(rbt3.Checked)
{
cmd.CommandText="select 編號,書名,出版社,價格,類型 from 圖書信息 where 編號='"+txt5.Text.Trim()+"'";
}
else
{
cmd.CommandText="select 編號,書名,出版社,價格,類型 from 圖書信息 where 條形碼='"+txt5.Text.Trim()+"'";
}
SqlDataReader dr=cmd.ExecuteReader();//執行查詢,并讀入圖書數據
dr.Read();
if(dr.HasRows==false)//如未能查詢到圖書信息,則提示重新輸入
{
MessageBox.Show("無此圖書,請檢查后重新輸入","錯誤",MessageBoxButtons.OK,MessageBoxIcon.Error);
return;
}
else
{
string newbookID=dr.GetValue(0).ToString();
foreach(DataRow newRow in tblBooks.Rows)//不允許重復借書
{
if(newRow["圖書編號"].ToString().Trim()==newbookID.Trim())
{
MessageBox.Show("該讀者已經借有此書,不能再借","信息",MessageBoxButtons.OK,MessageBoxIcon.Warning);
return;
}
}
aRow["圖書編號"]=dr.GetValue(0).ToString();
aRow["書名"]=dr.GetValue(1).ToString();
aRow["出版社"]=dr.GetValue(2).ToString();
aRow["價格"]=Convert.ToDecimal(dr.GetValue(3));
aRow["狀態"]="新借";
aRow["借閱時間"]=System.DateTime.Now.ToString();
bookType=dr.GetValue(4).ToString();
}
dr.Close();
cmd.CommandText="select 可借天數 from 圖書類型 where 類型名稱='"+bookType+"'";//計算歸還時間
int days=Convert.ToInt32(cmd.ExecuteScalar());
DateTime returnTime=System.DateTime.Now.AddDays(days);
aRow["應還時間"]=returnTime.ToString();
tblBooks.Rows.Add(aRow);//增加新借書記錄
totalCount++;
thisCount++;
label1.Text="已借書"+totalCount.ToString()+"本";
label2.Text="本次借書"+thisCount.ToString()+"本";
}
//--------處理借書事務----------
private void toolBar1_ButtonClick(object sender, System.Windows.Forms.ToolBarButtonClickEventArgs e)
{
if(e.Button.ToolTipText=="確定借書")
{
string strConn = "workstation id=localhost;Integrated Security=SSPI;database=libbook";
SqlConnection cn=new SqlConnection(strConn);
cn.Open();
SqlCommand cmd=cn.CreateCommand();
foreach(DataRow newRow in tblBooks.Rows)
{
if(newRow["狀態"].ToString()=="新借")//插入新增的圖書記錄
{
cmd.CommandText="insert into 圖書借閱([圖書編號],[讀者編號],[借閱時間],[應還時間],[狀態],[續借次數])"
+" values('"+newRow["圖書編號"].ToString()+"','"+readerID+"','"+newRow["借閱時間"]
+"','"+newRow["應還時間"]+"','未還','0')";
cmd.ExecuteNonQuery();
newRow["狀態"]="未還";//將已經保存的借書狀態改為未還
}
}
}
if(e.Button.ToolTipText=="取消借書")
{
tblBooks.Clear();
groupBox2.Enabled=false;
}
if(e.Button.ToolTipText=="退出")
{
foreach(DataRow aRow in this.tblBooks.Rows)
{
if(aRow["狀態"].ToString()=="新借")//檢索表中是否有新借書數據,提示用戶保存
{
DialogResult dlg=MessageBox.Show("該讀者有新借圖書尚未保存,退出將無法保存新借圖書記錄","確認退出",MessageBoxButtons.OKCancel,MessageBoxIcon.Warning);
if(dlg==DialogResult.OK)
{
return;
}
}
}
this.Close();
}
}
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -