图书管理系统知识点借书模块1、数据库链接串的生成及编写stringstrcon=@DataSource=YTR-PC;InitialCatalog=MYBOOK;UserID=sa;2、SqlConnection对象作用:其它对象连接数据库的渠道用法:stringstrcon=@DataSource=YTR-PC;InitialCatalog=MYBOOK;UserID=sa;SqlConnectionconn=newSqlConnection(strcon);conn.Open();3、SqlCommand对象作用:执行操纵数据库的指令,一般针对insert、update、delete和存储过程指令。但针对DataReader对象除外,如:DataReader对象=SqlCommand对象.ExecuteReader();用法:SqlCommandcmd=newSqlCommand();cmd.CommandType=CommandType.Text;cmd.Connection=conn;cmd.CommandText=insertintoTLendvalues('+textBox3.Text.Trim()+','+textBox1.Text.Trim()+','+textBox2.Text.Trim()+','+date_now.ToString()+');cmd.ExecuteNonQuery();CommandText的两种方法:方法1:直接生成SQL语句cmd.CommandText=insertintoTLendvalues('+textBox3.Text.Trim()+','+textBox1.Text.Trim()+','+textBox2.Text.Trim()+','+date_now.ToString()+');方法2:参数法cmd.CommandText=insertintoTLendvalues(@BookID,@ReadID,@ISBN,@LTime);cmd.Parameters.Add(@BookID,SqlDbType.VarChar);cmd.Parameters[@BookID].Value=textBox3.Text.Trim();cmd.Parameters.Add(@ReadID,SqlDbType.VarChar);cmd.Parameters[@ReadID].Value=textBox1.Text.Trim();cmd.Parameters.Add(@ISBN,SqlDbType.VarChar);cmd.Parameters[@ISBN].Value=textBox2.Text.Trim();cmd.Parameters.Add(@LTime,SqlDbType.DateTime);cmd.Parameters[@LTime].Value=date_now;4、异常处理Try{}Catch{}Finally{}5、SqlDataAdapter对象作用:通过select语句从数据库读取数据填充到DataSet(数据集)对象用法:stringsqlStrSelect=selectBookID,TBook.ISBN,BookName,Publisher,Price,LTimefromTLend,TBook+whereTLend.ISBN=TBook.ISBNandReaderID='+textBox1.Text.Trim()+';SqlDataAdapteradapter=newSqlDataAdapter(sqlStrSelect,conn);DataSetdstable=newDataSet();adapter.Fill(dstable,借阅);dataGridView1.DataSource=dstable.Tables[借阅];dataGridView1.Show();6、DataSet(数据集-数据表的集合)对象作用:内存中的多个表,通过SqlDataAdapter对象填充,一个DataSet(数据集)对象可以包括多个DataTable(表),通过Tables属性访问表。DataSet(数据集)表的描述:数据集对象.[表名或序号]如:dstable.Tables[借阅]7、DataTable对象作用:内存中的数据表。用法:?7、dataGridView1对象作用:从数据库中查询数据并填充到DataSet对象中。用法:SqlDataAdapteradapter=newSqlDataAdapter(sqlStrSelect,conn);DataSetdstable=newDataSet();adapter.Fill(dstable,借阅);读者管理模块详细设计界面:界面的3个状态:初始化状态,新增状态,修改状态初始化状态新增状态修改状态进入模块删除操作单击修改按钮单击保存按钮单击保存按钮单击新增按钮状态表:状态基面各控件的状态初始化状态“读者查询”、“读者添加”、“读者删除”、“读者修改”按钮可以用各输入对象内容清空GridView显示所有读者资料新增状态修改状态软件设计规格要求:界面对象单击事件其它说明“读者查询”按钮根据输入的“借书证号”查询满足条件的读者,并将查询的结果显示在各个输入对象上,若未找到则显示提示信息“读者添加”按钮首先判断所输入的“借书证号”是否在数据库中已存在,若是则提示“借书证号重复,请重新输入”将输入的读者信息添加到数据库中,不论成功与否,都显示提示信息刷新GridView,重新显示所有读者资料“读者删除”按钮尝试删除数据库中指定读者记录,不成功的原因可能是该读者有借过或还过书籍,存在外键约束不论成功与否,都显示提示信息“读者修改”按钮不论成功与否,都显示提示信息刷新GridView,重新显示所有读者资料知识点:1、图片保存到数据库中方法:采用FileStream(文件流)对象,将图片读入FileStream对象中,通过FileStream对象再将图片读入byte[]数组中,然后将byte[]数组赋值给SQL语句的参数。示例://FileStream(文件流)对象声明FileStreamfs=null;//图片读入FileStream对象fs=newFileStream(FileNamePath,FileMode.Open,FileAccess.Read);//将图片读入byte[]数组中byte[]data1=newbyte[fs.Length];//定义照片长度的数组fs.Read(data1,0,(int)fs.Length);//把照片存到byte数组中//将byte[]数组赋值给SQL语句的参数cmd.Parameters.Add(@Photo,SqlDbType.Image);cmd.Parameters[@Photo].Value=data1;2、显示数据库中的图片方法:将图像数据转换为byte[]数组,将byte[]数组转换为memStream(内存流),调用Image.FromStream(memStream),最后关闭memStream,。示例:if(sdr[Photo]!=System.DBNull.Value)//如果有照片{if(this.pictureBox1.Image!=null)//如果pictureBox1中有图片销毁{pictureBox1.Image.Dispose();}byte[]data=(byte[])sdr[Photo];memStream=newMemoryStream(data);//字节流转换为内存流this.pictureBox1.Image=Image.FromStream(memStream);//内存流转换为照片}3、DataReader对象可以使用ADO.NETDataReader从数据库中检索只读、只进的数据流。查询结果在查询执行时返回,在并存储在客户端的网络缓冲区中,直到您使用DataReader的Read方法对它们发出请求。使用DataReader可以提高应用程序的性能,原因是它只要数据可用就立即检索数据,并且(默认情况下)一次只在内存中存储一行,减少了系统开销。注:从使用的方便性看还是DataSet方便实用。用法:1.数据的读取调用SqlCommand对象.ExecuteReader(),该方法返回SqlDataReader对象。2.字段值的访问DataReader对象[列名或序号]示例:SqlConnectionconn=newSqlConnection(strcon);stringsqlStrSelect=selectReaderID,Name,Sex,Spec,Born,Photo,Num,DetailfromTReaderwhereReaderID='+textBox1.Text.Trim()+';SqlCommandcmd=newSqlCommand(sqlStrSelect,conn);conn.Open();//打开数据库连接SqlDataReadersdr=cmd.ExecuteReader();if(sdr.HasRows)//如果有记录{sdr.Read();//读取第一行记录textBox2.Text=sdr[Name].ToString();//读取姓名textBox3.Text=sdr[Born].ToString();//读取出生时间comboBox1.Text=sdr[Spec].ToString();//读取专业label7.Text=sdr[Num].ToString()+本;//读取所借的书本数boolsex=Convert.ToBoolean(sdr[Sex]);//读取性别}sdr.Close();//关闭sdr3、删除读者功能:将当前选中的读者信息从数据库中删除,方法:使用SqlCommand对象执行Delete的SQL语句。4、修改读者功能:修改数据库中指定读者的信息方法:使用SqlCommand对象执行Update的SQL语句。还书模块界面软件设计规格要求软件设计规格要求:界面对象单击事件其它说明“查询”按钮根据输入的“借书证号”查询该读者的所有未还书的借书记录,并将查询的结果显示dataGridView对象上,若未找到则显示提示信息(包括:借书证号,图书ID,书名,出版社,价格,借书日期)“还书”按钮将借书表对应记录的“是否归还”改为true,在还书表新增还书记录,其中“还书时间”为当前系统时间,不论成功与否,都显示提示信息刷新GridView,重新显示所有该读者的所有未还书的借书记录注:在原系统中增加还书功能模块。用户管理模块登录模块界面软件设计规格要求界面对象单击事件其它说明密码输入密码时显示”####”界面初始化将“用户名”和“密码”输入框清空将焦点定在“用户名”输入框中“登录”按钮判断该用户在数据库中是否存在,若不存在则提示“无该用户”,若存在继续以下步骤。查询该用户是否已锁定,若是则提示“用户已锁定,请联系管理员!”,否则继续以下步骤。查询输入的密码与数据库中该用户的密码是否匹配若不匹配,显示密码错误提示信息,修改数据库密码错误次数(次数增加1),并判断错误次数是否超过最大次数(5次),若是,则锁定该用户(将数据库锁定标识位设为True),提示“用户已锁定,请联系管理员!”。若匹配,则将数据库密码错误次数改为0若密码匹配,则显示主界面。在登录界面按回车键相当于单击“登录”按钮“取消”按钮退出程序备注:为了提升软件的安全性,需对进行加密。