数据库 - 实验五 - 报告

2019-03-09 19:39

实 验 五 存储过程建立与调用

一.实验目的:

理解并掌握利用SQL Server 数据库库服务器的存储过程的建立与调用,并理解概念。能够熟悉用数据库一种开发平台进行存储过程的调用。

二.实验属性:

设计性。

三.实验仪器设备及器材:

装有.net、Java和Delphi 7和SQL Server的电脑。

四.实验要求

1、利用存储过程,给student表添加一条学生信息。

2、利用存储过程从student、course、sc表的连接中返回所有学生的学号、姓名、所选课程及成绩。 3、 用存储过程查找“刘刚”的学号、所选课程、成绩。

4、 用存储过程查找姓“李”并且性别为“男”的学生的学号、所选课程、成绩。 5、 利用存储过程计算出平均成绩大于k分(0

以上要求需要与.net和Delphi开发平台结合,调用所建立的存储过程,将结果显示出来,可以在一个工程里完成,也可以在多个工程里完成。

6. 提交实验报告要分别进行叙述。 提示:

一、在Delphi开发平台下,要用到TADOstoredPro, TADOConnection, TADOQuery, TdataSource, TDBGrid 等技术。

二、在 . net编译环境下,需要用到:

SQLConnection(或者OleDbConnection,或者OdbcConnection); SQLCommand(或者OleDbCommand,或者OdbcCommand); SqlDataReader(或者OleDbDataReader,或者OdbcDataReader); DataSet;

dataGridView(可视控件,用于显示数据)

五、试验过程

第一步:在数据库中建立相关的存储过程,其SQL代码如下所示: 1、 建立存储过程,完成给学生Student表添加一条学生信息

CREATE PROCEDURE ADD_STUDENTINFO @no VARCHAR(12), @name VARCHAR(10), @sex VARCHAR(4), @age int,

@dept VARCHAR(16) AS

INSERT INTO Student

VALUES(@no,@name,@sex,@age,@dept) 2、 建立存储过程,完成从student、course、sc表的连接中返回所有学生

的学号、姓名、所选课程及成绩。

CREATE PROCEDURE SHOW_INFO AS

SELECT Student.Sno,Sname,Cname,Grade FROM Student,SC,Course

WHERE Student.Sno=SC.Sno AND SC.Cno=Course.Cno 3、 建立存储过程,完成查找“刘波”的学号、所选课程、成绩。

CREATE PROCEDURE SHOW_LIUBOINFO AS

SELECT Student.Sno,Sname,Cname,Grade FROM Student,SC,Course

WHERE Student.Sno=SC.Sno AND SC.Cno=Course.Cno AND Sname='刘波' 4、 建立存储过程,完成查找姓“李”并且性别为“男”的学生的学号、所

选课程、成绩。

CREATE PROCEDURE SHOWL @s VARCHAR(2) AS

SELECT Student.Sno,Sname,Cname,Grade FROM Student,SC,Course

WHERE Student.Sno=SC.Sno AND SC.Cno=Course.Cno AND Sname LIKE @s+'%' AND Ssex='男' 5、 建立存储过程,完成计算出平均成绩大于k分(0

姓名。

CREATE PROCEDURE SHOW_K @k int AS

SELECT Sno,Sname FROM Student WHERE EXISTS (

SELECT * FROM SC

WHERE SC.Sno=Student.Sno GROUP BY Sno

HAVING AVG(Grade)>@k )

第二步:建立相应的C#工程,在其中定义用于数据库操作的类: 该类可以进行与数据库的连接,实现最基本的显示。

public class LinkDataBase {

private SqlConnection myconnection = new SqlConnection(); private SqlCommand mycmd = new SqlCommand(); public LinkDataBase() {

mycmd.Connection = myconnection; }

public SqlConnection pconnection {

get { return myconnection; } set { myconnection = value; } }

public SqlCommand pcmd {

get { return mycmd; } set { mycmd = value; } }

public string Link() {

string str = ConfigurationManager.ConnectionStrings[\].ConnectionString.ToString(); myconnection.ConnectionString = str; try {

myconnection.Open(); }

catch (Exception ex) {

MessageBox.Show(ex.Message.ToString(), \提示\); return \连接失败\; }

return \连接成功\; }

public void Show(DataGridView dview) {

SqlDataAdapter Adapter = new SqlDataAdapter(); Adapter.SelectCommand = mycmd; DataSet myDS = new DataSet(); Adapter.Fill(myDS);

dview.DataSource = myDS.Tables[0].DefaultView; }

public bool login(string name, string password) {

Exception ex = new Exception();

mycmd.CommandText = \; mycmd.Connection = myconnection;

SqlDataReader myread = mycmd.ExecuteReader(); try {

while (myread.Read())

{

if (myread.GetValue(0).ToString().Trim() == name.ToString().Trim()) {

if (myread.GetValue(1).ToString().Trim() == password.ToString().Trim()) {

myread.Close(); myconnection.Close(); return true; } else {

ex = new Exception(\姓名输入错误\); throw ex; } } }

ex = new Exception(\学号输入有误\); throw ex; }

catch (Exception Ex) {

switch (Ex.Message) {

case \姓名输入错误\:

MessageBox.Show(\姓名输入有误\, \提示!\, MessageBoxButtons.OK); myread.Close(); myconnection.Close(); return false; case \学号输入有误\:

MessageBox.Show(\学号输入有误\, \提示!\, MessageBoxButtons.OK); myread.Close(); myconnection.Close(); return false; default:

myread.Close(); myconnection.Close(); return false; } } }

}

第三步:登录的设置:

点击登录按钮相应如下函数:

private void btnlogin_Click(object sender, EventArgs e)

{

if (textBox1.Text.Trim() == \ || textBox2.Text.Trim() == \) {

MessageBox.Show(\不能为空\,\信息提示\); return; }

if (ldb.Link() == \连接失败\) return;

if (ldb.login(textBox1.Text.Trim(), textBox2.Text.Trim())) {

this.Hide();

MainFrm f =new MainFrm(); f.ShowDialog(); this.Close(); } }

第四步:进入主界面后设计如下: 主界面:


数据库 - 实验五 - 报告.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:2018届江苏省常州市高三英语期末考试(一模)(解析版)

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: