您好,欢迎访问三七文档
当前位置:首页 > 临时分类 > SQL SERVER设计与优化实验指导
SQLServer设计与优化实验指导邢台学院信息科学与技术系2012.9第1页实验报告姓名学号系别班级主讲教师指导教师实验日期专业课程名称一、实验名称:二、实验目的:三、实验内容及要求四、实验材料、工具、或软件五、实验内容及实验步骤(或记录)六、实验存在问题和解决办法七、意见和建议八、教师评语(或成绩)教师签字:年月日第2页实验项目周次章节及教学内容累计学时1实验一数据库编程基础122实验一数据库编程基础223实验二使用ADO.NET访问数据库124实验二使用ADO.NET访问数据库225实验三SQLServer事务处理机制126实验三SQLServer事务处理机制227实验四监控SQLServer的性能与活动128实验四监控SQLServer的性能与活动229实验五数据库系统开发1210实验五数据库系统开发2211实验五数据库系统开发3212实验五数据库系统开发4213实验五数据库系统开发5214实验五数据库系统开发6215实验五数据库系统开发7216实验五数据库系统开发82第3页实验一数据库编程基础实验时数:4学时授课类型:实验课教学方法与手段:指导目的要求:了解ADO.NET的工作原理。掌握常用OLEDB对象属性和方法,设计简单的数据库应用程序。实验内容:1、自己编写代码实现数据库连接和数据显示usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Text;usingSystem.Windows.Forms;usingSystem.Data.SqlClient;namespace自己编写数据库连接{publicpartialclassForm1:Form第4页{privateSqlConnectionmyCon;privateSqlDataAdaptermyAda;privateSqlCommandmyCmd;privateSqlCommandBuildermyCbd;privateDataSetmySet;publicForm1(){InitializeComponent();myCon=newSqlConnection(DataSource=.;InitialCatalog=student;IntegratedSecurity=True);myAda=newSqlDataAdapter();myCmd=newSqlCommand(select*fromc,myCon);myAda.SelectCommand=myCmd;myCbd=newSqlCommandBuilder(myAda);//SqlCommandBuilder有什么妙用,我们从字面意思翻译一下,Sql就是Sql,众人名其曰结构化查询语言;Command,名令;Builder,构造,建造,不太好,人家带了个er,学过E文的都知道,这是个名词,那就译之为构造器,建造者能说得过去。Sql命令构造器,这下恍然明白了,就是用来构造Sql命令的,比如你更新数据库需要一个Update,通过这句它就给咱构造出来了。那么Sql命令构造器这个东西又是怎么生成咱需要的Sql语句命令的?它怎么知道我们要什么样滴?其实它不知道,是我们给了它提示信息,不过它实在是太聪明了,就这么点提示信息人家就举一反三,根据这点提示推断出我们的需求。那我们在哪里给提示了,看这句myAda.SelectCommand=myCmd;我们把查询的Sql命令给了出来,给了DataAdaper数据适配器的SelectCommand,而我们又把DataAdaper数据适配器(在这里为myAda)作为参数丢给了SqlCommandBuilder,这下好了,被SqlCommandBuilder抓到了,它就这样轻松加愉快的,根据抓到的DataAdaper的SelectCommand信息,一骨碌的把其它的Sql操作命令都给生成出来了。可能有朋友问了,我不用这个命令构造器生成Sql操作命令行不?当然是可以了,要是总觉得它自动给搞出来的不符合我们的要求,我们完全可以自己写的灵活点,像下面这样就可以了://myAda.DeleteCommand=NewSqlCommand(delete*fromUserInfowhere.....)mySet=newDataSet();//通过DataAdaper给我们提供了TableMappings属性,利用它就可以把数据库里的千奇百怪的字段名毫不费力的给转成我们需要的名字,人家这里称作是映射。myAda.TableMappings.Add(UserInfo,UserInfo);myAda.TableMappings[0].ColumnMappings.Add(cno,课程号);myAda.TableMappings[0].ColumnMappings.Add(cname,课程名);myAda.TableMappings[0].ColumnMappings.Add(credit,学分);}privatevoidForm1_Load(objectsender,EventArgse){try{myAda.Fill(mySet,C);第5页}catch(SqlExceptionex){MessageBox.Show(ex.ToString());}finally{myCon.Close();}dataGridView1.DataSource=mySet.Tables[c];}//查询完成了,更新,删除当然也是不在话下了,我们在dataGridView控件中编辑完数据后,会首先将变化反映到关联的DataSet的DataTable中,接下来还是数据适配器上场,直接调用它的Update万能方法就可以了,就会把我们的数据的更改写到源数据表中了.这里万能的背后仍然是DataAdaper的SqlCommand命令,我们此前已经为它们配置好了,这里的一切就交给Update方法吧.这里要罗索一下的是mySet.Tables[0].AcceptChanges(),这句很有用,要不你更新一条后,接着再去更新第二条,第三条的话,就会出现异常,因为一次更新发生后,DataSet会对本次更新挂起,到下一次更新的时候又会重复进行上一次挂起的更改,所以在每次更新后必须调用AcceptChanges来清除挂起的更改.privatevoidbutton1_Click(objectsender,EventArgse){try{//将更改的数据更新到数据表里myAda.Update(mySet.Tables[0].GetChanges());MessageBox.Show(数据更新成功!);//DataTable接受更改,以便为下一次更改作准备mySet.Tables[0].AcceptChanges();}catch(SqlExceptionex){ex.ToString();}}privatevoidbutton2_Click(objectsender,EventArgse){//从DataTable中删除当前选中的行mySet.Tables[0].Rows[dataGridView1.CurrentRow.Index].Delete();if(MessageBox.Show(确定要删除当前行数据?,,MessageBoxButtons.OKCancel)==DialogResult.OK){第6页try{//将更改的数据更新到数据表里myAda.Update(mySet.Tables[0].GetChanges());MessageBox.Show(数据删除成功!);//DataTable接受更改,以便为下一次更改作准备mySet.Tables[0].AcceptChanges();}catch(SqlExceptionex){MessageBox.Show(ex.ToString());}}else{//取消对DataTable的更改mySet.Tables[0].RejectChanges();}}}}2、完善数据库SQLServer2005的数据库应用,创建实例完成C表的查看,增、删、改和查询等。第7页1)建立应用,并设计窗体2)设置各控件属性注意DataGridView,BindingDataSource,以及显示数据的3个文本框的数据源一致,才能产生联动效果。组合框采用单独的数据源(单独的数据集)用于获取所有的课程名。3)添加代码和响应事件第8页第9页第10页实验二使用ADO.NET访问数据库实验时数:4学时授课类型:实验课教学方法与手段:指导1、目的要求:了解Windows窗体的数据体系结构,理解数据集的属性和方法,掌握DataTable和DataRow的属性和方法,掌握数据视图的主要属性。熟练使用ADO.NET编程。实验内容:1、查看数据集的XML格式第11页2、DataTable的相关设置与操作1)创建DataTable和列、约束以及主键第12页2)创建计算列3、DataRow的属性和方法1)RowState属性privatevoidDemonstrateRowState(){//RunafunctiontocreateaDataTablewithonecolumn.DataTablemyTable=MakeTable();DataRowmyRow;//CreateanewDataRow.myRow=myTable.NewRow();//Detachedrow.Console.WriteLine(NewRow+myRow.RowState);myTable.Rows.Add(myRow);//Newrow.Console.WriteLine(AddRow+myRow.RowState);myTable.AcceptChanges();//Unchangedrow.第13页Console.WriteLine(AcceptChanges+myRow.RowState);myRow[FirstName]=Scott;//Modifiedrow.Console.WriteLine(Modified+myRow.RowState);myRow.Delete();//Deletedrow.Console.WriteLine(Deleted+myRow.RowState);}2)DataRow方法A:AcceptChanges:privatevoidDemonstrateDeleteRow(){//CreateasimpleDataTablewithtwocolumnsandtenrows.DataTabletable=newDataTable(table);DataColumnidColumn=newDataColumn(id,Type.GetType(System.Int32));idColumn.AutoIncrement=true;DataColumnitemColumn=newDataColumn(item,Type.GetType(System.String));table.Columns.Add(idColumn);table.Columns.Add(itemColumn);//Addtenrows.DataRownewRow;for(inti=0;i10;i++){newRow=table.NewRow();newRow[item]=Item+i;table.Rows.Add(newRow);}table.AcceptChanges();DataRowCollectionitemColumns=table.Rows;itemColumns[0].Delete();itemColumns[2].Delete();itemColumns[3].Delete();itemColumns[5].Delete()
本文标题:SQL SERVER设计与优化实验指导
链接地址:https://www.777doc.com/doc-4821740 .html