using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Data.SqlClient; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace FS图书馆 { public partial class 图书管理系统 : Form { string Reader = null; int 读者级别 = 3;//默认为3级别,正常的三个级别 bool isLogined = false; public 图书管理系统() { InitializeComponent(); this.dateTimePicker.MinDate = DateTime.Now;//防止用户错误的将还书的时间设置在当前日期之前。 } private void textBox1_TextChanged(object sender, EventArgs e) { } private void button_确认查询_Click(object sender, EventArgs e) { bool[] isChecked = new bool[3]; string[] row = new string[3]{"[作者]","[出版社]","[关键词]"}; isChecked[0] = radioButton_作者.Checked; isChecked[1] = radioButton_出版社.Checked; isChecked[2] = radioButton_关键词.Checked; int flag = -1; for(int i=0;i<isChecked.Length;i++) { if(isChecked[i]==true) { flag = i; break; } } if(flag == -1) { MessageBox.Show("请选一个标签再进行检索"); } else { //检索数据库,并且将结果显示在DataGridView上面 dataGridView_主界面.DataSource = null; string message = textBox_检索信息.Text; String sql = String.Format("select * from TypeBook left join SingleBook on " + " SingleBook.书目号 = TypeBook.书目号 where TypeBook.书目号 in " + " (select 书目号 from TypeBook where {0} like N'%{1}%')",row[flag],message); DataSet ds = DB.select_DataSet(sql,"SingleBook"); dataGridView_主界面.DataSource = ds.Tables["SingleBook"]; } } private void 图书管理系统_Load(object sender, EventArgs e) { } private void button_登录_Click(object sender, EventArgs e) { Reader = txtbox_学工号.Text; string password = txtbox_密码.Text; txtbox_学工号.Text = null; txtbox_密码.Text = null; string sql = String.Format("select count(*) from Reader where 学工号=N'{0}' " + " and 密码 = N'{1}'",Reader,password); int n = (int)DB.select_count(sql); if(n==1) { MessageBox.Show("登录成功"); this.isLogined = true; string connString = @"Data Source=(localdb)MSSQLLocalDB;Initial Catalog=C:USERSWANGGONGSHENGAPPDATALOCALMICROSOFTMICROSOFT SQL SERVER LOCAL DBINSTANCESMSSQLLOCALDBNEWLIBRARYKEDA.MDF;Integrated Security=True"; SqlConnection conn = new SqlConnection(connString); sql = String.Format("select 读者级别 from Reader where 学工号=N'{0}'", Reader); try { conn.Open(); SqlCommand comm = new SqlCommand(sql, conn); 读者级别 = (int)comm.ExecuteScalar(); //显示一下读者等级 DataSet ds = DB.select_DataSet(String.Format("select 读者级别 from Reader where 学工号=N'{0}'", Reader), "读者级别"); dataGridView_主界面.DataSource = ds.Tables["读者级别"]; // conn.Close(); } catch(Exception exception) { MessageBox.Show(exception.ToString()); } } else { MessageBox.Show("账号或者密码错误,请重新输入"); txtbox_学工号.Text = null; txtbox_密码.Text = null; } } private void button_退出_Click(object sender, EventArgs e) { Reader = null; isLogined = false; 读者级别 = 3; dataGridView_主界面.DataSource = null;//清空 } private void button_读者中心_Click(object sender, EventArgs e) { } private void button_确认归还_Click(object sender, EventArgs e) { if(isLogined) { string 图书编号 = txtReturnBookId.Text; string connString = @"Data Source=(localdb)MSSQLLocalDB;Initial Catalog=C:USERSWANGGONGSHENGAPPDATALOCALMICROSOFTMICROSOFT SQL SERVER LOCAL DBINSTANCESMSSQLLOCALDBNEWLIBRARYKEDA.MDF;Integrated Security=True"; SqlConnection conn = new SqlConnection(connString); string sql1 = String.Format("select count(*) from [dbo].[SingleBook] where [图书编号]=N'{0}' and [借阅人]=N'{1}'",图书编号,Reader); string sql2 = String.Format("select [书名] from [dbo].[TypeBook],[dbo].[SingleBook] where [dbo].[SingleBook].[图书编号]=N'{0}' and [dbo].[SingleBook].[书目号]=[dbo].[TypeBook].[书目号]",图书编号); string sql3 = String.Format("select [书目号] from [dbo].[SingleBook] where [dbo].[SingleBook].[图书编号]=N'{0}'",图书编号); try { conn.Open(); SqlCommand comm1 = new SqlCommand(sql1,conn); SqlCommand comm2 = new SqlCommand(sql2,conn); SqlCommand comm3 = new SqlCommand(sql3, conn); int returnNumber = (int)comm1.ExecuteScalar(); string bookName = (string)comm2.ExecuteScalar(); string 书目号 = (string)comm3.ExecuteScalar(); conn.Close(); if (returnNumber == 0) { MessageBox.Show(String.Format("您在图书管理系统中没有借阅{0}的记录,[图书编号]={1}", bookName, 图书编号)); } else { sql1 = String.Format("update [dbo].[TypeBook] set [可借阅数量] = [可借阅数量]+1 where [书目号]=N'{0}'",书目号); sql2 = String.Format("update [dbo].[SingleBook] set [借阅人]='0',[借出状态]='可借阅',[借出时间]=null,[应该归还时间]=null"); comm1 = new SqlCommand(sql1,conn); comm2 = new SqlCommand(sql2,conn); try { conn.Open(); comm1.ExecuteNonQuery(); comm2.ExecuteNonQuery(); MessageBox.Show(String.Format("成功归还图书:{0},编号:{1}",bookName,图书编号)); conn.Close(); }catch(Exception ex) { MessageBox.Show(ex.ToString()); } } } catch(Exception exception) { MessageBox.Show(exception.ToString()); } } else { MessageBox.Show("请登录之后在进行归还操作!谢谢"); } } private void button_确认借出_Click(object sender, EventArgs e) { if(isLogined) { string 图书编号 = txtBorrowBookId.Text; string connString = @"Data Source=(localdb)MSSQLLocalDB;Initial Catalog=C:USERSWANGGONGSHENGAPPDATALOCALMICROSOFTMICROSOFT SQL SERVER LOCAL DBINSTANCESMSSQLLOCALDBNEWLIBRARYKEDA.MDF;Integrated Security=True"; SqlConnection conn = new SqlConnection(connString); string sql1 = String.Format("select [dbo].[TypeBook].[可借阅数量] from [dbo].[TypeBook],[dbo].[SingleBook] " + "where [图书编号]='{0}' and [dbo].[SingleBook].[书目号]=[dbo].[TypeBook].[书目号]", 图书编号); string sql2 = String.Format("select [dbo].[TypeBook].[书名] from [dbo].[TypeBook],[dbo].[SingleBook] " + "where [图书编号]='{0}' and [dbo].[SingleBook].[书目号]=[dbo].[TypeBook].[书目号]", 图书编号); string sql3 = String.Format("select [书目号] from [dbo].[SingleBook] where [图书编号]='{0}'",图书编号); try { conn.Open(); SqlCommand comm1 = new SqlCommand(sql1, conn); SqlCommand comm2 = new SqlCommand(sql2, conn); SqlCommand comm3 = new SqlCommand(sql3, conn); int sumBookNumber = (int)comm1.ExecuteScalar(); string bookName = (string)comm2.ExecuteScalar(); string 书目号 = (string)comm3.ExecuteScalar(); conn.Close(); if (sumBookNumber == 0) { MessageBox.Show(String.Format("对不起,{0}当前可借阅的数量为0.借阅操作失败!", bookName)); } else { string returnBookTime = dateTimePicker.Value.Date.ToLongDateString(); string borrowBookTime = DateTime.Now.ToLongDateString(); sql1 = String.Format("update [dbo].[SingleBook] set [借阅人]=N'{0}',[借出状态]=N'{1}',[借出时间]=N'{2}',[应该归还时间]=N'{3}' where [图书编号]='{4}'", Reader, "已借出", borrowBookTime, returnBookTime,图书编号); sql2 = String.Format("update [dbo].[TypeBook] set [可借阅数量]=[可借阅数量]-1 where [dbo].[TypeBook].[书目号]='{0}'", 图书编号); try { conn.Open(); comm1 = new SqlCommand(sql1, conn); comm2 = new SqlCommand(sql2, conn); //comm1.ExecuteNonQuery(); comm2.ExecuteNonQuery(); MessageBox.Show(String.Format("OK,借阅操作成功!")); conn.Close(); } catch (Exception ex) { MessageBox.Show(ex.ToString()); } } } catch (Exception exception) { MessageBox.Show(exception.ToString()); } } else { MessageBox.Show("请登录之后在进行借阅操作!谢谢"); } } private void dateTimePicker1_ValueChanged(object sender, EventArgs e) { } } }