Week15,Week16 DataReader和Command综合应用_第1页
Week15,Week16 DataReader和Command综合应用_第2页
Week15,Week16 DataReader和Command综合应用_第3页
Week15,Week16 DataReader和Command综合应用_第4页
Week15,Week16 DataReader和Command综合应用_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Week15,Week16 Command对象和DataReader对象实验步骤1(20分钟): 学会创建ACCESS数据库,创建表以及表和表间的关系,设置字段约束等。任务:创建一个名为Library.mdb的数据库。(可参考给出的ACCESS数据库) 实验步骤1:(30分钟)试着自己设计程序界面(可以根据自己喜好修改界面,但是基本框架不变)如下: 连接到ACCESS数据库,并从数据库中取出数据显示在控件中将已经设计好的数据库LittleLibrary拷贝到C:下;类Form1下的主要代码如下:(该代码实现添加图书记录功能)OleDbConnection conn = new OleDbCon

2、nection(" Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:LittleLibrary.mdb"); private void Form1_Load(object sender, EventArgs e) cbbBookType.Text = "请选择->" txtBuyDate.Text=DateTime.Today.ToShortDateString(); txtStatus.Text="在库" conn.Open(); OleDbCommand cmd = new Ol

3、eDbCommand("SELECT * FROM BOOKTYPE", conn); OleDbDataReader dr = cmd.ExecuteReader(); while (dr.Read() cbbBookType.Items.Add(dr"类型"); dr.Close(); conn.Close(); 实验要点:1, 与数据库的连接,要掌握连接字符串的写法2, Command对象的定义方法,读者可以自己定义一个Command对象访问SqlServer数据库3, DataReader的用法,特别留意Dr.Read()方法,这个方法返回一个b

4、ool值,用以说明是否还有可以读取的数据。DR“列名“用以访问当前行的某一列的值4, cbbBookType是一个组合列表框,掌握添加元素的方法。思考题:1, 该小课是连接ACCESS数据库,请同学自己尝试链接sqlServer数据库(先把ACCESS数据库迁移到SQL SERVER2005平台)。2, 这节小课的数据库是放在指定的位置和路径(绝对路径),试问:如果不需要指定,而是用相对路径应该怎么操作?实验步骤2:实现入库借阅功能(下一次小课实现,同学可以自行尝试书写代码实现)private void btnInStore_Click(object sender, EventArgs e)

5、string bookId = newBookId(txtISBN.Text); string sql=String.Format("INSERT INTO BOOKINFO (图书编号,ISBN,书名,作者,出版社,单价,类型,购买日期,状态) VALUES('0','1','2','3','4',5,'6',#7#,'8')",bookId,txtISBN.Text,txtBookName.Text,txtAuthor.Text,txtPublisher.Te

6、xt,txtPrice.Text,cbbBookType.Text,txtBuyDate.Text,txtStatus.Text); OleDbCommand cmd = new OleDbCommand(sql, conn); conn.Open(); cmd.ExecuteNonQuery(); conn.Close(); MessageBox.Show("入库操作成功,图书编号:"+bookId); private void btnLendOut_Click(object sender, EventArgs e) /修改图书信息 string sql1 = "

7、;UPDATE BOOKINFO SET 状态='借出' WHERE 图书编号='" + txtBookId.Text + "'" OleDbCommand cmd1= new OleDbCommand(sql1, conn); /添加借书记录 string sql2 = "INSERT INTO BOOKLENDED (图书编号,读者ID,借出日期) VALUES ('" + txtBookId.Text + "','" + txtReaderId.Text + &q

8、uot;',Now()" OleDbCommand cmd2 = new OleDbCommand(sql2, conn); conn.Open(); cmd1.ExecuteNonQuery(); cmd2.ExecuteNonQuery(); conn.Close(); /根据ISBN为图书生成一个图书编号 private string newBookId(string isbn) string sql = "SELECT COUNT(*) FROM BOOKINFO WHERE ISBN='" + isbn + "'&quo

9、t; OleDbCommand cmd = new OleDbCommand(sql, conn); conn.Open(); int number = Convert.ToInt32(cmd.ExecuteScalar()+1; conn.Close(); return isbn +"_"+ number.ToString(); private void txtBookId_TextChanged(object sender, EventArgs e) string sql = "SELECT * FROM BOOKINFO WHERE 图书编号='&q

10、uot; + txtBookId.Text + "'" OleDbCommand cmd = new OleDbCommand(sql, conn); conn.Open(); OleDbDataReader dr = cmd.ExecuteReader(); if (dr.Read() lblISBN.Text = dr"ISBN".ToString (); lblBookName.Text = dr"书名".ToString(); lblAuthor.Text = dr"作者".ToString();

11、lblPublisher.Text = dr"出版社".ToString(); lblPrice.Text = dr"单价".ToString(); lblBookType.Text = dr"类型".ToString(); lblBuyDate.Text = dr"购买日期".ToString(); dr.Close(); conn.Close(); 要求:为程序写出注释。重点回答以下问题: 1, string bookId = newBookId(txtISBN.Text);这一行代码的作用?2, int number = Convert.ToInt32(cmd.ExecuteScalar()+1;这一句的作用是什么?3, OleDbDataReader dr = cmd.ExecuteReader();中的dr和Cmd的作用是什么?4, if (dr.Read()和while (dr.Read()的作用是一样的吗?如果是一样的,表示什么意思,如果不一样,分别表示什么意思?5, string s

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论