版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、精选优质文档-倾情为你奉上实验一 数据库的连接与访问 (分两次实验完成)实验目的:1)掌握ADO.NET的常用对象2)掌握常用ADO.NET的程序编写方法3)能够实现简单的查询和数据更新功能注意:注意查看红色字体部分内容。ADO.NET是.NET Framework中的一系列类库,提供了在.NET开发中数据库所需的操作的类。在.NET应用程序开发中,C#可以使用ADO.NET。可以将ADO.NET看做是一个介于数据源和数据使用者之间的转换器,如图1所示。ADO.NET接收使用者语言中的命令,如连接数据库、返回数据集等,然后将这些命令转换成可以在数据源中正确执行的语句。.NET应用程序ADO.N
2、ET数据库/数据源图1 ADO.NET的功能示意图一、ADO.NET 命名空间及其常用类ADO.NET体系结构的类包含在System.Data命名空间中(命名空间相当于一个容器,它包含一组定义的类或结构,命名空间也可以嵌套在另一个命名空间中。.NET类库提供了很多类,根据类的功能不同,又划分了很多命名空间,而这些命名空间大多数有一个顶级的命名空间System。其中System.Data命名空间提供对表示ADO.NET结构的类的访问),根据功能划分,System.Data又包含了多个子空间。System.Data命名空间及其子空间所包含的常用类如表1所示。表1 System.Data命名空间及其
3、子空间的常用类命名空间类说明System.DataDataSet表示数据在内存中的缓存System.DataDataTable表示内存中数据的一个表System.DataDataRow表示DataTable中的一行数据System.DataDataColumn表示DataTable中列的架构System.DataDataRelation表示两个DataTable对象之间外键码和主/从关系System.DataConstraint表示可在一个或多个DataColumn对象上强制的约束System.DataDataRowView表示DataRow的自定义视图System.Data.Sqlclien
4、tSqlConnection表示SQL Server数据库的一个打开的连接System.Data.SqlclientSqlCommand表示要对SQL Server数据库执行的一个Transact-SQL语句或存储过程System.Data.SqlclientSqlCommandBuilder自动生成单表命令,用于对DataSet所做的更改与关联的SQL Server数据库的更改相协调System.Data.SqlclientSqlDataAdapter表示用于填充DataSet和更新SQL Server数据库的一组数据命令和一个数据库连接System.Data.SqlclientSqlDat
5、aReader提供一种从SQL Server数据库读取行的只进流的方式System.Data.SqlclientSqlParameter表示SqlCommand的参数,也可以是它到DataSet列的映射System.Data.SqlclientSqlTransaction表示要在SQL Server数据库中处理的Transact-SQL事务二、ADO.NET数据库访问实验内容:一、设计如下图所示窗体 图2 学生注册信息管理的窗体设计建立上述窗体的过程如下:(1)启动Visual Studio 2008,然后文件->新建 项目,弹出如图3所示的对话框。图3 新建项目对话框在新建项目对话框中
6、,选择左侧的项目类型为“Visual C# -Windows”,右侧的模板中选择“Windows 窗体应用程序”,下面输入项目的名称例如studentmis,并设置好存储路径,然后点击确定,生成如图4所示的Form1窗体。图4 Form1窗体然后在工具箱(如果工具箱未显示,则需要点击视图->工具箱)中,分别从“数据”、“容器”、“公共组件”工具箱中拖放DataGridView控件、Pannel控件、Lable控件、Combox控件、TextBox控件、Button控件到该窗体中,并修改相应的Name属性。该窗体包含1个DataGridView控件用以显示数据表的数据;1个Pannel控件
7、用以组合数据操作的全部组件;2个Lable控件用以显示“学号”、“姓名”标题;1个Combox控件用作“学号”的选项列表,该控件的Name属性为cbsno;1个TextBox控件用作“姓名”的输入,该控件的Name属性为tbsname;4个Button控件用作对数据库的“增加”、“修改”、“删除”、“查询”操作,并将这4个控件的Name属性分别设置为btnadd、btnupdate、btndelete、btnselect。该窗体的功能设计包含了对数据库的基本操作。l 增加:cbsno、tbsname作为追加一条记录的内容输入。l 修改:以cbsno为“学号”条件,修改该cbsno的“姓名”。l
8、 删除:以cbsno为“学号”条件,删除该cbsno对应的记录。l 查询:以cbsno为“学号”条件,从其下拉列表中选择,然后选择出的记录显示在DataGridView中。1.ADO.NET数据库访问步骤开始创建一个连接对象使用对象的Open()方法打开连接创建一个封装SQL命令的对象调用执行命令的对象执行数据库操作使用对象的Close()方法关闭连接结束图5是ADO.NET访问数据库的步骤。图5 ADO.NET访问数据库的步骤以下步骤是实例程序,请同学们阅读后完成程序功能的编写。数据表中至少包含两个字段(sno,sname),分别指学号和姓名。实验报告要求:蓝色字部分和自己编写完成的主要程序
9、都要写入实验报告,实验内容分两次做完,实验报告分两次写完。其中界面设计和数据增加程序写入第一次实验报告,其他程序写入第二次实验报告。2.SqlConnection类与数据库连接 ADO.NET通过ADOConnection连接到数据库,ADOConnection包括Open()方法和Close()方法。Open用于打开数据库连接,Close关闭数据库连接。在每次打开数据库连接后,都需要关闭数据库连接。连接SQL Server数据库时,需要使用.NET提供的SqlConnection对象,在使用SqlConnection类时,需要引用命名空间 using System.Data.SqlClien
10、t。在使用SqlConnection类连接数据库之前,通常要构造一个连接字符串,通过该字符串使应用程序与数据库建立连接。(1)连接SQL Server数据库ADO.NET中可用两种方式连接SQL Server数据库,一种是SQL Server登录方式,一种是集成登录方式。 SQL Server登录方式登录前不管Windows是否通过了身份验证,都需要提供相应的SQL Server用户名和密码,才能登录到SQL Server数据库。SQL Server登录方式连接本地的studentmis数据库的实例代码如下:/声明连接字符串 String strCon; /声明SqlConnection对象
11、SqlConnection sqlCon; /编写数据库连接字符串:server为“服务器IP地址(或名称)”,database为“数据库名称”,uid为“数据库用户名”,pwd为“数据库密码” strCon ="server='XTWANG'database='studentmis'uid='sa'pwd='sql2005'" /新建SQL Server连接 SqlConnection sqlCon=new SqlConnection (strCon); sqlCon =new SqlConnection (
12、strCon);try /打开SQL连接 sqlCon.Open(); /连接数据库成功后的相应数据库操作 /关闭SQL连接 sqlCon.Close();catch (SystemException ex) /连接数据库失败提示 集成登录方式这是一种信任登录,即SQL Server数据库服务器信任Windows系统,如果Windows系统通过了验证,则SQL server将不再进行身份验证,也就不需要提供用户名和密码了。集成登录方式连接本地的studentmis数据库的代码如下:SqlConnection sqlCon=new SqlConnection ("data Source
13、=(local);Initial Catalog=studentmis;Integrated Secutity=true");(2)使用Sqlconnection 连接SQL Server应用示例在此编写一个对数据库进行各项操作时均可调用的数据库连接的公共方法,以避免在每个数据库操作时都要进行的数据库连接,从而简化程序设计,也便于维护代码。(1)/添加命名空间using System.Data.SqlClient;(2)/ -定义全局变量:声明连接字符串和SqlConnection对象- /声明连接字符串 String strCon; /声明SqlConnection对象 SqlCo
14、nnection sqlCon;(3)/-连接数据库,设计数据库连接的公共方法,以免每个数据库连接操作时都要进行数据库连接,简化程序,便于维护- private void DBConnect() /编写数据库连接字符串:server为“服务器IP地址(或名称)”,database为“数据库名称”,uid为“数据库用户名”,pwd为“数据库密码” strCon ="server='XTWANG'"+"database='studentmis'uid='sa'pwd='sql2005'" /新建
15、SQL Server连接 sqlCon =new SqlConnection (strCon); (4)在后面进行的数据库增加、修改、删除、查询的功能代码段中要首先调用上述的数据库连接方法,以建立与指定数据库的连接,然后再执行相应的数据库操作。最后断开数据库连接。代码如下:DBConnect(); sqlCon.Open(); ./数据库操作代码 sqlCon.Close();3.DataSet数据集与DataAdapter数据适配器DataSet是数据的集合(数据集),表示来自一个或多个数据源数据的本地副本,在内存中被缓存,所以也可以看作是一个虚拟的表。DataSet从数据源中加载数据后,就
16、会断开与数据源的连接,然而DataSet必须要与一个或多个数据源进行交互,DataAdapter就像一座桥梁提供了DataSet对象与数据源之间的连接。为了实现这种交互,.NET提供了SqlDataAdapter类,它专用于SQL Server数据库。(1)利用DataAdapter将数据填充到DataSet使用DataAdapter属性指定需要执行的操作,这个属性可以是一条SQL语句或者存储过程,再通过DataAdapter对象的Fill方法,即可将返回的数据存放到DataSet数据集中。利用DataAdapter将数据填充到DataSet数据集的基本步骤如下: 创建DataAdapter对
17、象示例代码:/创建DataAdapter对象SqlDataAdapter da = new SqlDataAdapter("select * from student",sqlCon );DataAdapter对象的构造函数允许传递2个初始化参数,第1个参数为SQL语句,第2个参数为数据库连接的SqlConnection对象。 创建数据集示例代码如下:/创建数据集 DataSet ds = new DataSet(); /Fill方法填充da.Fill(ds,"tablename");DataSet可以被看作是一个虚拟的表或表的集合,这个表的名称在Fil
18、l方法中可以任意命名(如tablename)。 显示DataSet的数据当返回的数据被存放到数据集中后,可以通过循环语句遍历和显示数据集中的信息。当需要显示表中某一行字段的值是,可以通过DataSet对象获取相应行的某一列的值,示例代码如下: /获取数据集ds.Tables"tablename".Rows0"sname".ToString();上述代码从DataSet对象中的虚表tablename中的第0行中获取sname列的值。 绑定DataSet数据集到列表控件或者数据显示控件上为了更方便地显示数据,也可以将DataSet数据集绑定到DataGrid
19、View、ListBox或ComboBox控件上。将DataSet数据集绑定到DataGridView上的示例代码:/ 将DataSet数据集绑定到DataGridViewdataGridView1.DataSource = ds.Tables0;4.SqlCommand类与SQL Server数据库操作SqlCommand类可用于对SQL Server数据库执行一个T-SQL语句或者存储过程,如执行对数据表数据的插入、修改或删除操作,也可对数据表进行创建、修改或删除操作。(1)SqlCommand类的常用方法如表2所示。表2 SqlCommand类的常用方法方法说明Cancle试图取消Sql
20、Command的执行CreateParameter创建SqlParameter对象的新实例ExecuteNonQuery对连接执行T-SQL语句并返回受影响的行数ExecuteReader将CommandText发送到Connection并生成一个SqlDataReader对象 Command对象用于数据操作的基本步骤如下:创建Command对象示例代码如下:/向数据表student(sno,sname)中插入一条记录SqlCommand cmd = new SqlCommand("insert into student values('','张洋')
21、",sqlCon);SqlCommand对象的构造函数允许传递2个初始化参数,第1个参数为SQL语句,第2个参数为数据库连接的SqlConnection对象。 ExecuteNonQuery方法当执行的SQL语句不返回任何行时(如常用的insert、update以及delete语句以及很多存储过程),就可以使用ExecuteNonQuery方法。示例代码如下:/执行上述的向数据表student中插入一条记录的SQL 语句 cmd.ExecuteNonQuery();(2)SqlCommand类应用示例的程序设计以下程序段完成4个按钮对数据库进行的增加、修改、删除、查询操作,在代码段中
22、首先调用前面设计的数据库连接方法,以建立与指定数据库的连接,然后再执行相应数据库操作,最后断开数据库连接。例1:插入一条学生记录private void btnadd_Click(object sender, EventArgs e) /-增加记录- DBConnect(); sqlCon.Open(); SqlCommand cmd = new SqlCommand("insert into student values('" +cbsno .Text+ "','" + tbsname.Text + "')&q
23、uot;, sqlCon); /执行SQL 语句,增加记录 cmd.ExecuteNonQuery(); sqlCon.Close(); 例2:修改一条学生记录private void btnupdate_Click(object sender, EventArgs e) /-修改记录- DBConnect(); sqlCon.Open(); SqlCommand cmd = new SqlCommand("update student set sname='"+tbsname .Text+"'where sno='"+cbsno
24、.Text+"'",sqlCon); /执行SQL 语句,修改记录 cmd.ExecuteNonQuery(); sqlCon.Close(); 例3:删除一条学生记录private void btndelete_Click(object sender, EventArgs e) /-删除记录- DBConnect(); sqlCon.Open(); SqlCommand cmd = new SqlCommand("delete from student where sno='" + cbsno.Text + "'&qu
25、ot;, sqlCon); /执行SQL 语句,删除记录 cmd.ExecuteNonQuery(); sqlCon.Close(); 例4:查询一名学生信息private void btnselect_Click(object sender, EventArgs e) /-查询记录- DBConnect(); sqlCon.Open(); SqlCommand cmd = new SqlCommand("delete from student where sno='" + cbsno.Text + "'", sqlCon); /创建Da
26、taAdapter对象 SqlDataAdapter da = new SqlDataAdapter("select sno as 学号,sname as 姓名 from student where sno like '%"+cbsno .Text +"%'",sqlCon ); /创建数据集 DataSet ds = new DataSet(); /Fill方法填充 da.Fill(ds,"tablename"); / 将DataSet数据集绑定到DataGridView dataGridView1.DataSour
27、ce = ds.Tables0; sqlCon.Close(); 程序运行截图如下图5所示。图5程序运行界面图该程序的全部源代码:using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;/添加命名空间using System.Data.SqlClient;namespace studentmis pub
28、lic partial class Form1 : Form / -定义全局变量:声明连接字符串和SqlConnection对象- /声明连接字符串 String strCon; /声明SqlConnection对象 SqlConnection sqlCon; public Form1() InitializeComponent(); /-连接数据库,设计数据库连接的公共方法,以免每个数据库连接操作时都要进行数据库连接,简化程序,便于维护- private void DBConnect() /编写数据库连接字符串:server为“服务器IP地址(或名称)”,database为“数据库名称”,u
29、id为“数据库用户名”,pwd为“数据库密码” strCon ="server='XTWANG'database='studentmis'uid='sa'pwd='sql2005'" /新建SQL Server连接 sqlCon =new SqlConnection (strCon); /-刷新显示相关数据的方法 private void ComonDataView() try DBConnect(); /连接数据库成功后的操作 /创建DataAdapter对象 SqlDataAdapter da = new
30、SqlDataAdapter("select sno as 学号," + "sname as 姓名 from student", sqlCon); /创建数据集 DataSet ds = new DataSet(); /Fill方法填充 da.Fill(ds, "tablename"); /将DataSet数据集绑定到TextBox dataGridView1.DataSource = ds.Tables0; /指定列表中要显示的数据表的具体字段 /例如,列表时显示的学号,但保存的数据是学号sno cbsno.DisplayMembe
31、r = "学号" /指定最终实际存储的数据表的具体字段 cbsno.ValueMember = "学号" /绑定数据源 cbsno.DataSource = ds.Tables0.DefaultView; catch (SystemException ex) /连接数据库失败提示 MessageBox.Show(" 错误" + ex.Message, "错误提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Information); finally /如果处于与数据库连
32、接状态 if (sqlCon.State = ConnectionState.Open) /关闭SQL连接 sqlCon.Close(); /释放占用的资源 sqlCon.Dispose(); /-在窗体加载时显示数据表原始数据,并初始化列表项中的数据 private void Form1_Load(object sender, EventArgs e) ComonDataView(); private void btnadd_Click(object sender, EventArgs e) /-增加记录- DBConnect(); sqlCon.Open(); SqlCommand cmd
33、 = new SqlCommand("insert into student values('" +cbsno .Text+ "','" + tbsname.Text + "')", sqlCon); /执行SQL 语句,增加记录 cmd.ExecuteNonQuery(); sqlCon.Close(); private void btnupdate_Click(object sender, EventArgs e) /-修改记录- DBConnect(); sqlCon.Open(); SqlCommand cmd = new SqlCommand("update student set sname='"+tbsname .Text+"'where sno='"+cbsno.Text+"'",sqlCon); /执行SQL 语句,修改记录 cmd.ExecuteNonQuery(); sqlCon.Close(); private void btndelete_
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 基于二零二四年度云计算服务器的租赁合同
- 队会课件教学课件
- 石油安全事故
- 2024年度店铺商品采购合同3篇
- 幼儿园教案课件制作
- 瞻望病人的护理
- 《外伤引起静脉损伤》课件
- 2024年度电子商务专业校园创新创业大赛合作协议
- 课程合作合同协议书范本模板
- 高速公路交通标志标线优化合同(二零二四年度)
- 班主任与学生心理健康教育
- SCR反应中NOx吸附的原位红外数据分析总结
- 线路检测报告
- Unit6UnderstandingideasLongjiRiceTerraces公开课赛课课件-高中英语
- 工程变更管理的重要性和注意事项
- 收费站冬季安全注意事项
- 行政执法有关知识讲座
- 房建施工测量培训课件
- 《领导者的沟通技巧》课件
- 【公开课】Unit+1Reading+for+writing+课件-人教版(2019)选择性必修第二册
- 艾滋病的危害
评论
0/150
提交评论