⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bookborrow.cs

📁 C#的图书管理系统
💻 CS
📖 第 1 页 / 共 2 页
字号:
			// 
			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 + -