数据库实验报告五

 数据库实验报告五

 学院:电气信息学院 姓名:

  实验目的:

 通过本实验,学习和掌握中对象 SqlDataAdapter 和对象 DataSet 的应用,同时掌握通过绑定对象实现数据库的数据浏览操作和更新操作。

 学习和掌握中对象 SqlCommand 的应用;学习存储过程的调用。

  实验题目:

  1. 按书名查询书的作者、价格和出版社名称:输入书名中的部分字或词,查询所有相关书的情况。运行效果如下图所示。

 提示:

 (1)响应“查询”按钮的 click 事件,在其中构造 sql 语句,填充数据集,并将 DataGridView 的数据源设为该数据集中的相应数据表。

 (2)构造 Select 语句时:查询结果来自 T_BookInfo 和 T_Publisher 两个表;使用 Like 运算构造查询条件,使用 As 为查询字段重命名为中文; (3)利用生成的 sql 语句,使用 SqlDataAdapter 对象,填充数据集的一个数据表,并将其作为 DataGridView 的数据源 实验步骤及过程:

 点击“文件”“新建”“项目”

 选择“windows 窗体应用”,选择存储路径和项目名称

 更改 form1 的 text 属性为“书籍查询”

  添加四个控件

 并且更改相应控件的 text 属性为“请输入书名”和“查询”

  然后就是这个样子的啦

 双击“查询”按钮,输入如下代码

 然后调试运行

  实验题目:

  2. 通过查询实验三第 11 题所创建的视图 view_book3,实现查询各学院领书情况,如下图所示。

  提示:

 (1)

 查询学院使用 ComboBox 选择。可以在窗体的 Load 事件中,先创建数据集,使用 ComboBox 的 DataSource 属性设置数据集,使用 ComboBox 的 DisplayMember属性设置显示数据集的数据字段。

 (2)

 响应学院 ComboBox 的 Change 事件,在其中生成 sql 语句,填充数据表,将数据表设置为 DataGridView 的DataSource。

 实验步骤及过程:

  用同样的方法新建一个窗体

  添加三个控件

 改变 text 属性

  右键点击 datagridview,选择属性,具体关于数据库的绑定,在下一个实验有详细说明和过程。

  选择 viewbook3

  右键单击 combobox,选择“属性”,

 在“datasource”选择 viewbook3

 在“displaymember”设置为“学院名称”

 设置完成后是这样的

 双击 combobox,添加如下代码

  开始运行调试

 实验题目:

  3. 利用绑定对象编程实现对 Book 数据库中教材订购表的信息浏览和信息更新,功能界面见下图

 提示:

 (1)绘制窗体,添加各种控件。

 (2)添加数据源 BookDataSet (3)新增数据集对象 BookDataSet1 (4)建立相应的数据绑定 TBookOrderBindingSource (5)设置各按钮的 click 事件的响应代码 第一记录:Me.ion = 0 下一记录:Me.ion = Me.ion + 1 确认更新:Me.it()

  Me.T_e(Me.BookDataSet1.T_BookOrder)

 实验步骤及过程:

  先在 SQL 中进行相关的设置,再打开老师给的文件 选择“文件”“打开”“项目/解决方案”,选择要添加的文件

  再点击“项目”“添加新数据源”

  出现“数据源配置向导”,选择“数据库”点击“下一步”

 选择“数据集”点击“下一步”

 点击“新建连接”

 选择“服务器名”选择“身份验证”为“SQL Sever 身份验证” 输入用户名和密码。

  选择“是,再连接字符串中包含敏感数据”因为密码是敏感数据,如果不保存每次都要重新输入。

  点击“下一步”,方便起见将“表”“视图”“存储过程”均选中,然后点击“完成”。

 点击灰色文本框,右键选择属性,在“datasource”中做如下选择

  选择完成后,下方会出现这些东西

 总体是这个样子的

 点击调试运行后,表格中才会出现内容

 首先双击下面的四个按钮

 分别是“光标移到第一行”、“光标移到上一个数据”、“光标移到下一个数据”和“光标移到最后一行”。

 在相应的地方添加代码,具体代码如下

  下面绑定这几个文本框

 依次点击,例如右键单击“教材编号”下的文本框,点击“属性”,在 text中选择“BookCode”,后面类似

  添加完成后调试运行 点击不同的按钮,选择的数据也不同,文本框中就会显示不同的数据

 点击下一个就会跳到下一行数据

  点击上一个就会跳到上一行数据

  点击最后一个就会跳到数据最后一行

 点击第一个就会跳到数据第一行

 依次双击这几个按钮,在相应的地方补全相应的代码,为了使出现错误时不会立刻退出增强用户体验,最好将所有的语句放在 try catch 中用于捕获错误,添加的代码如下

  点击“订购新教材”

 输入一行教材信息

 点击订购新教材,可以发现已经添加进去了

  点击刚刚添加的那一行信息

 点击“删除教材”,发现教材信息已经被删除

  也可以点击“撤销更新”也能取消刚刚添加的数据。

  更新之前:

 将教材编号由“010004”改为“010003”,点击确定

  观察数据库中是否改变, 打开 sql,点击执行,发现已经改变了

 点击“删除教材”

 点击“撤销更新”

  又恢复了

 为了避免输入错误,可以将文本框换成 combobox,提供下拉菜单,可以让用户在这里面选择

 数据绑定

  将其他数据也进行相应的绑定

 选择教材编号就跳到 bookcode 选择的那一行

  选择教师编号就跳到 teachercode 选择的

 我知道不应该是这样,点击不同的行应该是修改外键值

 后面修改为 combobox 后就不能点击行跳到相应的行了,可能是哪里设置不一样了

  添加新教材,用下拉菜单可以方便选择

 把教材编号教师编号改成相应的老师名字会更一目了然一点

 添加新教材

 添加成功

  运行后选择别的教材

  并不是跳到相应行,而是把选中行的相应数据改成刚刚选择的教材了

 出现的错误及解决方法:

  问题:

  解决方法:

 百度,打开 Sql server 管理配置器,

 点击网络配置,在右侧的页面中选择 TCP/IP 协议,

 右键点击 TCP/IP 协议,选择“属性, 跳出来的对话框,里面有好多 TCP/IP 的端口,找到“IP3”,更改 IP 地址为自己电 脑 的 IP 地 址 ( 或 者 是127.0.0.1)

 在 TCP 端口添加1433,然后单击应用”,需要修改连接数据库的端口地址, 修改“IPALL”的所有端口改成“1433”(还是这个界面,往下拉滚动条),

 重新启动服务

 问题:

 原因:

 没有在“项目数据源”中选择“T_BookOrder”,所以运行了也没有内容

  解决方法:

 选中就好了。

 问题:

 教材编号是空的,教师编号是乱七八糟的东西 原因:

 教材编号没有进行合适的数据绑定, 教师编号的 displaymember 没有选择 teachercode 解决方法:

 问题:

  解决方法:

 先在 sql 中测试一下语句的问题

 啊,本身就是有问题的语句

 改成这样就对了,然后再复制到 vb 中 再调试生成就好了

  问题:

  原因:

 这是在我添加完新教材后再想删除那一行,选择那一行就弹出这个,因为那时候下面的文本框里内容还是空的,所以点击确定再删除就可以了。

 问题:

 假如改这个吧 学生数量是54

  我改成 10,更新成功了,但是撤销的时候

 显示撤销成功,但这个学生数量还是没改呀

 原因:

 撤销更新是撤销还没确认更新的数据 比如我将这里的学生数量由 120 改成 12

  但是还没有点击“确认更新”,此时点击“撤销更新”

 又恢复到 120 了

  问题:

 我在表中删除教材后,在数据库中并没有删除这一行

 原因:

 在这里面的更改不会影响到数据库中的内容,改变的只是数据集中的结果。

 问题:

 我点订购新教材,然后刚点完教材编号,就中断了

 原因:

 没有进行合适的绑定

 解决方法:

  问题:

 时间没有添加上去

  原因

 订购时间绑定错误

  应该绑定 value 解决方法:

 把 value 数据绑定为 ordertime

  再次执行就好啦!

 总结:

  通过这次实验,我学习中对象 SqlDataAdapter 和对象 DataSet 的应用,同时掌握通过绑定对象实现数据库的数据浏览操作和更新操作。了解了中对象SqlCommand 的应用;明白了存储过程的调用。

 在实验一中,我学会了如何在 VB 中用代码连接 sql 数据库。

 在实验二中,我知道了如何创建数据集,用组件的属性和数据库进行绑定。

 在实验三中,我知道了为了避免外键冲突,将文本框设置成 combobox 更容易让用户选择,但是当数据量大的时候,这种方法显然也有很大的缺点。

 通过此次实验我知道了当在 VB 中用到 SQL 语句时,如果出现错误首先应检查 SQL 语言是否正确。

 只有确认更新才会改变数据库中的数据,其他的都是改变数据集中的结果。

 还有表示对“撤销更新”的作用有点不清楚,添加新教材后撤销更新就相当于没有添加,但是确认更新后撤销更新就不能改变了,如果只是修改了数据还没确定就可以撤销更新。

 移动光标除了上面提到的,也可以这么写

  在这个实验中,因为我一开始少了很多设置,所以最一开始数据绑定用户登

 陆出现了不少问题,大部分问题都在百度上可以查到,以后遇事要首先自己思考,然后可以通过网络找到答案,不要总是麻烦别人或者轻言放弃。只有当自己做出来才发现其实并没有那么难。在上问问题,交流效率还是很低,直接找老师一下子就解决了。这个真的是我用时最久的一次数据库实验了,做出来了真的又累又激动!