实验九十.docx
《实验九十.docx》由会员分享,可在线阅读,更多相关《实验九十.docx(35页珍藏版)》请在冰豆网上搜索。
实验九十
实验 数据库应用系统实例
一、实验目的
学会ASP.NET和ADO.NET数据库连接、数据操程序编写,熟练使用MicrosoftVisualStudio2005开发平台开发学生学籍管理系统小型数据库应用系统。
二、实验内容和要求
1.连接SQLServer的数据访问编程实例
2.利用MicrosoftVisualStudio2005开发平台开发一个学生学籍管理系统小型数据库应用系统,对前面实验所建立的studb学籍数据库中的数据通过应用系统界面进行更新和查询等操作。
三、实验步骤和结果
使用企业管理器创建数据库studbXXX(其中XXX为本人学号后三位,以下同)
在数据库studbXXX中创建表SXXX、CXXX、SCXXX,其属性如下:
S(SNO,SNAME,AGE,DNAME)
C(CNO,CNAME,CREDIT,PRE_CNO)
SC(SNO,CNO,SCORE)
分别设置主键和外键
1.连接SQLServer的数据访问编程实例
编写一个应用程序来连接数据库名studb的SQLServer数据库,并根据连接结果输出一些信息。
(1)运行“开始|MicrosoftVisualStudio2005|MicrosoftVisualStudio2005”,在出现的“选择默认环境设置”中选择“VisualC#开发设置”选项,点击下方的“启动VisualStudio”命令按钮,进入“MicrosoftVisualStudio”起始页。
如图143所示。
图143 “MicrosoftVisualStudio”起始页
(2)从图143“MicrosoftVisualStudio”起始页的左上侧“最近的项目”列表中点击“创建”中的“网站”选项,进行“新建网站”对话框。
在“新建网站”对话框中“模板”列表表点取“ASP.NET网站”,在“位置”后面的组合框中输入,新建网站的路径名,例如为sample_10.1,如图144所示。
图144 新建ASP.NET网站
(3)在打开Default.aspx的设计页面,从工具箱中拖出一个Label和一个Button控件到设计界面,可以右击控件的快速菜单,从中选择“样式”菜单项,从出现“样式生成器”列表中选取“位置”选项,在“位置模式”组合框中选取“绝对位置”,即可对控制的位置进行任意拖放,同时可对其它样式进行设置。
也快速菜单中选择“属性”菜单项,在“属性”对话框中可以对控件属性进行设置,例如将Button1控件的Text属性修改为“连接数据库”。
如图145所示。
图145 事例sample_10.1的设计界面
(4)双击空白页面切换到后台编码文件Default.aspx.cs,添加如下命名空间:
usingSystem.Data.SqlClient;
(5)双击Button控件切换到后台编码文件Default.aspx.cs,系统自动添加了与该按钮的Click事件相关处理程序Button1_Click。
在事件处理程序Button1_Click中添加如下代码:
try
{
SqlConnectioncoon=newSqlConnection();
coon.ConnectionString="server=localhost;uid=sa;pwd=sa;database=studb";
//SQLServer和Windows混合模式
//coon.ConnectionString="server=localhost;database=studb;IntegratedSecurity=SSPI";
//仅Windows身份验证模式
coon.Open();
Label1.Text="连接成功";
}
catch
{
Label1.Text="连接失败";
}
(6)Ctrl+F5运行,在运行的页面中点击“连接数据库”命令按钮,如果连接成功,则显示label标签显示“连接成功”;如果连接不成功,则显示“连接失败”。
运行结果如图146所示。
图146 事例sample_10.1运行结果
2.读取和操作数据
编写一个程序获取studb数据库S表中学生的总人数。
(1)从图143“MicrosoftVisualStudio”起始页的左上侧“最近的项目”列表中点击“创建”中的“网站”选项,进行“新建网站”对话框。
在“新建网站”对话框中“模板”列表表点取“ASP.NET网站”,在“位置”后面的组合框中输入,新建网站的路径名,例如为sample_10.2,新建一个名为sample_10.2的ASP.NET网站。
(2)打开default.aspx的设计页面,从工具箱中拖出2个Label和1个Button控件到设计界面,设置这些控件的ID、Text属性。
如图147所示。
图147 事例sample_10.2的设计界面
(3)双击空白页面切换到后台编码文件Default.aspx.cs,添加如下命名空间:
usingSystem.Data.SqlClient;
(4)在事件处理程序Button1_Click中添加如下代码:
try
{
stringcreatedb="usestudbSelectcount(*)FromS;";
stringConnectionString="server=localhost;uid=sa;pwd=sa";
//SQLServer和Windows混合模式
//stringConnectionString="server=localhost;IntegratedSecurity=SSPI";
//仅Windows身份验证模式
SqlConnectionconn=newSqlConnection();
conn.ConnectionString=ConnectionString;
SqlCommandcmd=newSqlCommand(createdb,conn);
conn.Open();
stringnumber=cmd.ExecuteScalar().ToString();
conn.Close();
Label2.Text=number;
}
catch
{
Label2.Text="查询失败";
}
(5)Ctrl+F5运行,在运行的页面中点击“查询”命令按钮,如果查询成功,则显示“学生数目5”;如果连接不成功,显示“查询失败”,运行结果如图148所示。
图148 事例sample_10.2运行结果
3.使用数据集在数据库studb的S表中插入一条新记录
(1)从图143“MicrosoftVisualStudio”起始页的左上侧“最近的项目”列表中点击“创建”中的“网站”选项,进行“新建网站”对话框。
在“新建网站”对话框中“模板”列表表点取“ASP.NET网站”,在“位置”后面的组合框中输入,新建网站的路径名,例如为sample_10.3,新建一个名为sample_10.3的ASP.NET网站。
打开default.aspx的设计页面,从工具箱中拖出5个Label1、5个TextBox、1个Button控件和1个GridView控件到设计界面,设置这些的ID、Text属性。
如图149所示。
图149 事例sample_10.3的设计界面
(2)双击空白页面切换到后台编码文件Default.aspx.cs,添加如下命名空间:
usingSystem.Data.SqlClient;
(3)在事件处理程序Button1_Click()中添加如下代码:
stringSQL="usestudbselect*fromS";
stringmyStr="server=localhost;database=studb;uid=sa;pwd=sa";
//SQLServer和Windows混合模式
//stringmyStr="server=localhost;IntegratedSecurity=SSPI";
//仅Windows身份验证模式
SqlConnectionmyConnection=newSqlConnection(myStr);
myConnection.Open();
SqlDataAdaptermySqlDA=newSqlDataAdapter(SQL,myConnection);
SqlCommandBuildermySqlCB=newSqlCommandBuilder(mySqlDA);
DataSetmyDS=newDataSet();
DataTableSTable;
DataRowSRow;
mySqlDA.Fill(myDS);
STable=myDS.Tables[0];
SRow=STable.NewRow();
SRow["SNO"]=TextBox1.Text;
SRow["SNAME"]=TextBox2.Text;
SRow["AGE"]=Convert.ToInt16(TextBox3.Text);
SRow["SEX"]=TextBox4.Text;
SRow["DNAME"]=TextBox5.Text;
STable.Rows.Add(SRow);
mySqlDA.Update(myDS);
GridView1.DataSource=myDS.Tables[0].DefaultView;
GridView1.DataBind();
myConnection.Close();
(4)Ctrl+F5运行,在运行的页面中点击“添加”命令按钮,则将插入的新记录添加到数据表S中,并在右侧的GridView1控件中显示表S信息。
运行结果如图150所示。
图150 事例sample_10.3运行结果
4.ADO数据控件的使用
(1)利用DropDownList和GridView数据控件绑定数据源来组合显示studb数据库SC表中给定学生学号的课程和成绩。
1)从图143“MicrosoftVisualStudio”起始页的左上侧“最近的项目”列表中点击“创建”中的“网站”选项,进行“新建网站”对话框。
在“新建网站”对话框中“模板”列表表点取“ASP.NET网站”,在“位置”后面的组合框中输入,新建网站的路径名,例如为sample(数据绑定控件),新建一个名为sample(数据绑定控件)的ASP.NET网站。
打开Default.aspx的设计页面从工具箱中“数据”选项拖出1个SqlDataSource控件到设计界面,其页面如图151所示。
图151 在sample(数据绑定控件)主界面放置SqlDataSource控件
2)配置DropDownList控件连接的数据源SqlDataSource1
①点击图151中的SqlDataSource1控件的任务框中的“配置数据源”超链接。
从出现的图152所示的“配置数据源”对话框中点击“新建连接”命令按钮,弹出“选择数据源”对话框,如图153所示,从列表中选择“MicrosoftSQLServer”,单击“继续”按钮,出现“添加连接”对话框,如图154所示。
图152 “配置数据源”对话框
图153 “选择数据源”对话框
图154 “添加连接”对话框
②在图154中的“添加连接”对话框中的服务器名中输入localhost,在“登录到服务器”选项中选择“使用SQL Server身份验证”,在用户名和密码文本框输入用户sa及其密码(或者是用户自己在SQLServer中事先定义的用户名及其密码),在“连接到一个数据库”选项中选择或输入一个数据库名(例如studb),点“确定”命令按钮,返回到“配置数据源”对话框,已完成数据库连接,如图155所示。
再点击图155中的“下一步”按钮将连接字符串保存到应用程序配置文件中,如图156所示。
图155 已完成数据库连接的“配置数据源”对话框
图156 将连接字符串保存到应用程序配置文件中
③点击图156中的“下一步”按钮,进入“配置Select语句”对话框,如图157所示。
图156 数据源SqlDataSource1的配置Select语句
从中选择“指定来自表或视图的列”单行按钮,从表“名称”组合框中选择表SC,从“列”列表框中选择字段要在DropDownList控件显示的字段SNO。
单击“下一步”按钮,再点击“完成”按钮,完成SqlDataSource1配置,返回到图151所示的sample(数据绑定控件)主界面。
④图151所示的sample(数据绑定控件)主界面,从“工具箱”标准选项中拖出1个DropDownList控件到设计界面,如图157所示。
点击图157中的DropDownList控件的任务框中的“选择数据源”超链接,从弹出的图158所示“选择数据源”对话框中的“选择数据库”组合框中选择SqlDataSource1,在DropDownList中显示和返回值的数据字段的组合框中选择SNO。
图157 在sample(数据绑定控件)主界面放置DropDownList控件
图158 “选择数据源”对话框
3)配置GridView控件连接的数据源SqlDataSource2
①与步骤2)一样设置与GridView控件连接的数据源SqlDataSource2。
在其“配置Select语句”对话框,选择“指定来自表或视图的列”单行按钮,从表“名称”组合框中选择表SC,从“列”列表框中选择字段要在DropDownList控件显示的字段SNO、CNO、SCORE。
如图159所示。
图159 数据源SqlDataSource2的配置Select语句
②点击图159中的“WHERE”命令按钮,在弹出的图160所示“添加WHERE子句”对话框中的“列”组合框中选择SNO,“源”组合框中选择Control,在“参数属性”中的“控件ID”组合框中选择DropDownList1控件,点击“添加”命令按钮完成WHERE子句添加,如图161所示。
图160 添加WHERE子句
图161 完成WHERE子句添加
③从“工具箱”标准选项中拖出1个GridView控件到设计界面,如图162所示。
点击图162中的GridView控件的任务框中的“选择数据源”组合框选择SqlDataSource2,并选择“启用分页”和“启用排序”复选框。
点击“运行”按钮,其运行页面如图163所示。
图162 在sample(数据绑定控件)主界面放置GridView控件
图163 事例sample(数据绑定控件)运行结果
(2)利用GridView数据控件绑定数据源来进行studb数据库SC表中学生成绩的修改和删除。
1)在sample(数据绑定控件)的网站,添加一个添加新项Default2.aspx。
从“解决方案资源管理器”视图选中“sample(数据绑定控件)”,右点鼠标右键,从快捷菜单中点击“添加新项”,如图164所示。
图164 添加新网页
2)从弹出的图165所示的“添加新项”对话框中的模板中选择“Web窗体”Default2.aspx。
图165 添加新的Web窗体Default2.aspx
3)在打开Default2.aspx的设计页面从工具箱中“数据”选项拖出1个SqlDataSource控件到设计界面,参照上例中的步骤1)配置GridView控件连接的数据源SqlDataSource,在图156所示的“配置Select语句”对话框中选中SC表SNO、CNO、SCORE后,点击右侧“高级”命令按钮,从弹出的图166所示的“高级SQL生成选项”对话框中选中“生成INSERT、UPDATE和DELETE语句”和“使用开放式并发”复选框。
单击“下一步”按钮,再点击“完成”按钮,完成数据更新的SqlDataSource1配置,返回到图151所示的sample(数据绑定控件)主界面。
图166 “高级SQL生成选项”对话框
4)从“工具箱”标准选项中拖出1个GridView控件到设计界面,如图167所示。
点击图167中的GridView控件的任务框中的“选择数据源”组合框选择SqlDataSource1,并选择“启用分页”、“启用编辑”和“启用删除”复选框。
图167 在主界面设置GridView控件
5)在GridView任务窗口中点击编辑列,弹出如图168所示的“字段”对话框,从“字段”对话框的“选定的字段”列表中选中相应字段,在左侧的“BoundField属性”框中设置HeaderText的属性为要设置的中文。
图168 “字段”对话框
6)从“解决方案资源管理器”视图选中“sample(数据绑定控件)”的窗体Default2.aspx,点击鼠标右键,从快捷菜单中点击“设为起始页”,如图169所示。
图169 Default2.aspx起始页设置
7)点击“运行”按钮,其运行页面如图170所示。
数据修改和更新后的页面分别如图171和图172所示。
图170 Default2.aspx运行页面
图171 GridView中数据修改页码
图172 数据修改更新后的页码
5.开发学生学籍管理应用系统
(1)系统主界面设计
1)从图143“MicrosoftVisualStudio”起始页的左上侧“最近的项目”列表中点击“创建”中的“网站”选项,进行“新建网站”对话框。
在“新建网站”对话框中“模板”列表表点取“ASP.NET网站”,在“位置”后面的组合框中输入,新建网站的路径名,例如为sample(数据绑定控件),新建一个名为sample(应用系统实例)的ASP.NET网站。
打开Default1.aspx的设计页面从工具箱中拖出1个Label、6个Button控件到设计界面,其页面如图173所示。
图173 事例sample_10.8的设计界面
2)设置这些控件的ID、Text属性。
3)双击空白页面切换到后台编码文件Default1.aspx.cs,添加如下命名空间:
usingSystem.Data.SqlClient;
(2)“学生信息录入”界面设计
1)从“解决方案资源管理器”视图选中“sample(数据绑定控件)”,点击鼠标右键,从快捷菜单中点击“添加新项”,如图174所示。
图174 “添加新网页”快捷菜单
2)从弹出的图175所示的“添加新项”对话框中的模板中选择“Web窗体”Student.aspx。
图175 添加学生信息录入的Web窗体Student.aspx
3)打开Student.aspx的设计页面,在菜单栏中选择“布局”菜单中的“插入表”,添加一个表格。
在“插入表”对话框中,设置6行3例,如图176所示。
图176 插入表
4)从工具箱中拖出5个Label、5个TextBox和4个Button控件到设计界面,其页面如图177所示。
图175 “学生信息录入”界面设计
5)设置这些控件的ID、Text属性,如表2.1所示。
表2.1 “学生信息录入”界面控件属性设置
控件名称
属性设置
Label控件
5个Label控件的Text属性依次设置为“学号:
”、“姓名:
”、“年龄:
”、“性别:
”、“所在系”
TextBox控件
5个TextBox控件的ID属性依次设置为StudentID、StudentName、StudentAge、StudentSex、StudentDept
Button1控件
ID属性设置为“Insert”,Text属性设置为“数据插入”
Button2控件
ID属性设置为“Update”,Text属性设置为“数据修改”
Button3控件
ID属性设置为“Delete”,Text属性设置为“数据删除”
Button4控件
ID属性设置为“Exit”,Text属性设置为“返回”
6)双击空白页面切换到后台编码文件Student.aspx.cs,添加如下命名空间:
usingSystem.Data.SqlClient;
7)按钮Insert(数据插入)的单击事件
即让用户单击主页面上的“数据插入”按钮时,向S表中插入一条新记录,其值是StudentID、StudentName、StudentAge、StudentSex、StudentDept5个TextBox控件的Text属性值。
该事件的实现代码如下:
protectedvoidInsert_Click(objectsender,EventArgse)
{
SqlConnectioncon=newSqlConnection("server=localhost;uid=sa;pwd=sa;database=studb");
con.Open();
stringinsert="insertintoS(sno,sname,age,sex,dname)values("+"'"+StudentID.Text.Trim()+"'"+","+"'"+StudentName.Text.Trim()+"'"+","+StudentAge.Text.Trim()+","+"'"+StudentSex.Text.Trim()+"'"+","+"'"+StudentDept.Text.Trim()+"'"+")";
Response.Write(insert);
SqlCommandcmd1=newSqlCommand(insert,con);
cmd1.ExecuteNonQuery();
con.Close();
}
8)按钮Update(数据修改)的单击事件
让用户单击主页面上的“数据修改”按钮时,来对S表中记录进行修改,将属性SNO为StudentID控件的Text属性值的记录中SNAME、AGE、SEX、DNAME等属性值用StudentName、StudentAge、StudentSex、StudentDept 4个TextBox控件的Text属性值来修改。
该事件的实现代码如下:
protectedvoidUpdate_Click(objectsender,EventArgse)
{
SqlConnectioncon=newSqlConnection("server=localhost;userid=sa;pwd=sa;database=studb");
con.Open();
stringselect="selectcount(*)astotalfromSwheresno="+"'"+StudentID.Text.Trim()+"'";
SqlCommandcmdsel=newSqlCommand(select,con);
SqlDataReaderdr=cmdsel.ExecuteReader();
if(dr.Read())
{
if(int.Parse(dr["total"].ToString())==0)
{
Response.Write("");