实验六 访问数据库
实验:数据库的连接与访问

实验一数据库的连接与访问(分两次实验完成)实验目的:1)掌握的常用对象2)掌握常用的程序编写方法3)能够实现简单的查询和数据更新功能注意:注意查看红色字体部分内容。
是.NET Framework中的一系列类库,提供了在.NET开发中数据库所需的操作的类。
在.NET应用程序开发中,C#可以使用。
可以将看做是一个介于数据源和数据使用者之间的转换器,如图1所示。
接收使用者语言中的命令,如连接数据库、返回数据集等,然后将这些命令转换成可以在数据源中正确执行的语句。
图1 的功能示意图一、 命名空间及其常用类体系结构的类包含在System.Data命名空间中(命名空间相当于一个容器,它包含一组定义的类或结构,命名空间也可以嵌套在另一个命名空间中。
.NET类库提供了很多类,根据类的功能不同,又划分了很多命名空间,而这些命名空间大多数有一个顶级的命名空间System。
其中System.Data命名空间提供对表示结构的类的访问),根据功能划分,System.Data又包含了多个子空间。
System.Data命名空间及其子空间所包含的常用类如表1所示。
表1 System.Data命名空间及其子空间的常用类二、数据库访问实验内容:一、设计如下图所示窗体图2 学生注册信息管理的窗体设计建立上述窗体的过程如下:(1)启动Visual Studio 2008,然后文件->新建项目,弹出如图3所示的对话框。
图3 新建项目对话框在新建项目对话框中,选择左侧的项目类型为“Visual C# --Windows”,右侧的模板中选择“Windows 窗体应用程序”,下面输入项目的名称例如studentmis,并设置好存储路径,然后点击确定,生成如图4所示的Form1窗体。
图4 Form1窗体然后在工具箱(如果工具箱未显示,则需要点击视图->工具箱)中,分别从“数据”、“容器”、“公共组件”工具箱中拖放DataGridView控件、Pannel控件、Lable控件、Combox 控件、TextBox控件、Button控件到该窗体中,并修改相应的Name属性。
数据库实验 通过嵌入式SQL访问数据库

数据库原理课程实验报告1. 实验题目:实验五通过嵌入式SQL访问数据库2.实验目的熟悉通过嵌入式SQL(主语言C语言)编程访问数据库3实验平台3.1 操作系统:Windows 2000或者Windows XP注:使用Professional版的操作系统建议安装数据库管理系统的教学版,Server 版的操作系统建议安装数据库管理系统的企业版。
3.2 数据库管理系统:SQL Server 2000数据库管理系统4 实验内容及要求内容:熟悉RDBMS的预编译程序。
掌握SQL Server 2000的预编译程序NSQLPREP.EXE 的使用(以课本例题1进行调试)。
要求:在本报告中列出程序代码及注释,保证程序能正确编译运行。
5. 实验内容与完成情况:嵌入式SQL的C语言应用程序在VC++6.0、SQL Server 2000环境下的调试可分为五步:第一步环境初始化;第二步预编译;第三步编译;第四步连接;第五步运行。
1、环境初始化(1) 将文件夹devtools复制到SQL Server的系统目录C:\Program Files\Microsoft SQL Server\(或在安装Microsoft SQL Server 2000时选择安装Development Tools,为使用嵌入式SQL语言准备必要的头文件和库文件。
)(2)初始化Visual C++ 6.0编译器环境。
在命令行方式下运行文件\Microsoft VisualStudio\VC98\Bin\vcvars32.bat。
运行文件\Microsoft Visual Studio\VC98\Bin\vcvars32.bat。
本人直接是由附件里的运行程序直接运行(3)初始化SQL Server的预编译环境。
在命令行方式下运行文件: C:\Program Files\Microsoft SQL Server\DEVTOOLS\SAMPLES\ESQLC\setenv.bat。
实验六 数据安全性实验

实验六数据安全性实验实验目的和要求:加深对数据安全性的理解,掌握SQL SERVER中有关用户、角色及操作权限的管理方法。
实验内容:1. 建立教学数据库teaching2. 建立教学数据库的三个基本表:S (S#, SNAME, AGE, SEX) 学生(学号,姓名,年龄,性别)SC (S#, C#, GRADE ) 选修(学号,课程号,成绩)C (C#, CNAME, TEACHER) 课程(课程号,课程名,任课教师)3.输入数据基本表C的数据4. 数据修改、删除1)把C2课程的非空成绩提高10%。
2)在SC表中删除课程名为PHYSICS的成绩的元组。
3)在S和SC表中删除学号为S8的所有数据。
5. 计算每个学生有成绩的课程门数、平均成绩。
6. 创建一个登录用户(1)打开企业管理器中的安全性文件夹,右击其中的登录文件夹,在弹出的菜单中选择“新建登录”选项后,就会出现一个登录属性对话框,在常规选项卡中输入用户名(login1),选择该用户的安全认证模式,选择默认数据库和默认语言。
如使用SQL SERVER安全认证模式,可以直接在名称栏中输入新登录名,并在下面的栏目中输入登录密码。
(2)选择数据库访问选项卡,确定用户能访问的数据库为教学数据库teaching,操作完成后,单击“确定”按钮,完成创建登录用户的工作。
7. 创建新的数据库用户在企业管理器中扩展SQL服务器及数据库文件夹。
右击用户文件夹,弹出的菜单中选择“新建数据库用户”项,会出现新建数据库用户属性对话框。
在对话框的登录名栏中选择一个SQL服务器登录用户名(login1),并在它下面的用户名栏中输入数据库用户名u2,单击“确定”按钮完成。
8.使用GRANT语句,把对基本表S、SC、C的使用权限授给用户u2。
并用REVOKE 语句回收权限。
实现数据转换实验内容:1)利用DTS的功能导出数据。
2)利用DTS的功能导入数据。
3)利用DTS设计器导入、导出数据。
实验六 访问数据库

实验六访问数据库一、实验目的1、熟悉通过嵌入式SQL(主语言为C++语言)编程访问数据库,及掌握游标的使用方法2、熟悉通过ODBC接口访问异构数据库并对异构数据库进行操作3、学会配置ODBC数据源4、学会各种数据库的访问方法二、实验要求1、编写一个嵌入式C++程序,实现对SQL Server2005数据库中的“学生课程数据库”的Student表中的年龄进行更新,即系统每输出一个学生记录,询问用户是否更新。
如果要更新,就输入新的年龄。
要求:提交源程序并标识必要的注释。
答:create table provider(Sno char(5)primary key,Sname char(20)not null,Ssex char(4),Sage int);insert into provider values('S1','李刚',’男’,20);insert into provider values('S2','李红',’男’,21);insert into provider values('S3','李飞',’男’,25);insert into provider values('S4','李春',’男’,21);#include<stddef.h>#include<stdio.h>#include<conio.h>#include<stdlib.h>#include<windows.h>#include<sql.h>#include<sqlext.h>#include<sqltypes.h>EXEC SQL BEGIN DECLARE SECTION;char deptname[20];char HSno[9];char HSname[20];char HSsex[2];int HSage;int NEWAGE;EXEC SQL END DECLARE SECTION;long SQLCODE;EXEC SQL INCLUDE sqlca;int main(){void ErrorHandler(void);int count=0;char yn;printf("Please choose the department name(CS/MA/IS):");scanf("%s",&deptname);EXEC SQL CONNECT TO学生课程数据库@localhost:54321USER "SYSTEM"/"MANAGER";EXEC SQL DECLARE SX CURSOR FOR SELECT Sno,Sname,Ssex,Sage FROM Student WHERE SDept=:deptname;EXEC SQL OPEN SX;for(;;){EXEC SQL FETCH SX INTO:HSno,:HSname,:HSsex,:HSage;if(sqlca.sqlcode!=0)break;if(count++==0)printf("\n%-10s%-20s%-10s%-10s\n","Sno","Sname","Ssex", "Sage");printf("%-10s%-20s%-10s%-10d\n",HSno,HSname,HSsex,HSage);printf("UPDATE AGE(y/n)?");do{scanf("%c",&yn);}while(yn!='N'&&yn!='n'&&yn!='Y'&&yn!='y');if(yn=='y'||yn=='Y'){printf("INPUT NEW AGE:");scanf("%d",&NEWAGE);EXEC SQL UPDATE Student SET Sage=:NEWAGE WHERE CURRENT OF SX;}}EXEC SQL CLOSE SX;EXEC SQL COMMIT WORK;EXEC SQL DISCONNECT学生课程数据库;return1;}2、查有关C++、Java、C#中有关资料,分别写出C++、Java、C#访问SQL Server2005数据库数据的方法及步骤。
数据库访问实验报告

“J2EE应用开发”课程实验报告实验名称:数据库访问姓名:王一学号:专业:软件工程编制时间:2012-11-23指导教师:北京联合大学-信息学院编制实验报告要求:实验报告统一交电子版(班长收齐后一周之内提交),运行结果需给出图示,实验的步骤、格式按照指导书上的步骤和格式书写。
一、实验目的1、掌握数据库的连接方法2、掌握如何对数据库中的数据进行增删改查SQL语句3、掌握如何将数据库中的数据正确的显示输出方法二、实验要求1、利用JavaBean建立数据库连接方法,提高代码的复用2、通过while循环体,将数据库数据逐条解析显示三、实验内容步骤:1:在jspdev数据库中,建立一张数据库表,名字为student_31,字段名字及类型如下:步骤2:新建工程,创建bean包,建立名为DatabaseConn.java类,实现数据库的连接。
代码如下:package bean;import java.sql.Connection;import java.sql.DriverManager;public class Databaseconn {public static synchronized Connection getConnection() throws Exception{Connection con=null;StringCLASSFORNAME="com.microsoft.sqlserver.jdbc.SQLServerDriver";StringSERVANDDB="jdbc:sqlserver://localhost:1433;DatabaseName=jspdev";String USER="bn";String PWD="bn";try{C lass.forName(CLASSFORNAME);con = DriverManager.getConnection(SERVANDDB,USER,PWD);}catch(Exception e){e.printStackTrace();}return con;}}步骤3:建立testUpdate02.jsp文件,依次实现表student_学号的增、删、改操作。
Access数据库应用实验操作六

实验六数据访问页
1.自动创建“供应商信息”数据访问页,并通过IE浏览器查看。
2.使用向导创建“商品信息”数据访问页,要求包含“商品信息”表所有字段
并按供应商分组。
3.创建“销售记录”数据访问页,要求包含“销售记录”表所有字段并计算每
单交易销售额。
4.编辑“销售记录明细”数据访问页,使其应用主题背景“长青树”,在主体中
添加“采购记录明细”超链接,在标题下方添加滚动文字“good luck!”. 5.创建任意数据访问页,要求在数据访问页中带有主题背景、计算字段并能呈
现分组信息。
6.创建“控件练习3”数据访问页,并在其中使用多种类型的控件,对数据访
问页的设计要合理,样式要美观。
实验六_使用进行数据库访问

源码:public partial class Insert : System.Web.UI.Page{protected void Page_Load(object sender, EventArgs e){}protected void Button1_Click(object sender, EventArgs e){String sqlconnstr = ConfigurationManager.ConnectionStrings ["ApplicationServices"].ConnectionString;SqlConnection sqlcnn = new SqlConnection(sqlconnstr);//创建command对象SqlCommand sqlcommand = new SqlCommand();//给command对象的属性赋值sqlcommand.Connection = sqlcnn;mandText = "insert into Employees(ID,NAME,SEX,AGE,workData,Photo) values(@id,@name,@sex,@age,@workData,@photo)";sqlcommand.Parameters.AddWithValue("@id", TextBox1.Text);sqlcommand.Parameters.AddWithValue("@name", TextBox2.Text);sqlcommand.Parameters.AddWithValue("@sex", DropDownList1.Text);sqlcommand.Parameters.AddWithValue("@age", TextBox4.Text);sqlcommand.Parameters.AddWithValue("@workData", TextBox5.Text);sqlcommand.Parameters.AddWithValue("@photo", FileUpload1.FileName);try{sqlcnn.Open();sqlcommand.ExecuteNonQuery();//上传学生照片if (FileUpload1.HasFile == true){FileUpload1.SaveAs(Server.MapPath("~/images/") + FileUpload1.FileName);}Label7.Text = "成功添加记录";}catch (Exception ex){Label7.Text = "错误原因" + ex.Message;}finally{sqlcommand = null;sqlcnn.Close();sqlcnn = null;}}}6.源码:public partial class Delete : System.Web.UI.Page{protected void Page_Load(object sender, EventArgs e){}protected void Button1_Click(object sender, EventArgs e){int deleteCount;String sqlconnstr = ConfigurationManager.ConnectionStrings ["ApplicationServices"].ConnectionString;SqlConnection sqlcnn = new SqlConnection(sqlconnstr);//创建command对象SqlCommand sqlcommand = new SqlCommand();sqlcnn.Open();//给command对象的属性赋值sqlcommand.Connection = sqlcnn;mandText = "delete from Employees where ID = @id"; sqlcommand.Parameters.AddWithValue("@id", TextBox1.Text);deleteCount = sqlcommand.ExecuteNonQuery();try{if (deleteCount > 0){Label2.Text = "成功删除记录";}else{Label2.Text = "不存在该记录";}}catch (Exception ex){Label1.Text = "错误原因" + ex.Message;}finally{sqlcommand = null;sqlcnn.Close();sqlcnn = null;}}}7.源码:public partial class Modification : System.Web.UI.Page{protected void Page_Load(object sender, EventArgs e){}/*提交修改的数据之前,先删除*/protected void Button1_Click(object sender, EventArgs e){String sqlconnstr = ConfigurationManager.ConnectionStrings[ "ApplicationServices"].ConnectionString;SqlConnection sqlcnn = new SqlConnection(sqlconnstr);//创建command对象SqlCommand sqlcommand = new SqlCommand();//给command对象的属性赋值sqlcommand.Connection = sqlcnn;mandText = "insert into Employees(ID,NAME,SEX,AGE,workData,Photo)values(@id,@name,@sex,@age,@workData,@photo)";sqlcommand.Parameters.AddWithValue("@id", Label9.Text);sqlcommand.Parameters.AddWithValue("@name", TextBox2.Text);sqlcommand.Parameters.AddWithValue("@sex", TextBox7.Text);sqlcommand.Parameters.AddWithValue("@age", TextBox4.Text);sqlcommand.Parameters.AddWithValue("@workData", TextBox5.Text);sqlcommand.Parameters.AddWithValue("@photo", FileUpload1.FileName); try{sqlcnn.Open();sqlcommand.ExecuteNonQuery();//上传学生照片if (FileUpload1.HasFile == true){FileUpload1.SaveAs(Server.MapPath("~/images/") + FileUpload1.FileName);}Label7.Text = "成功添加记录";}catch (Exception ex){Label7.Text = "错误原因" + ex.Message;}finally{sqlcommand = null;sqlcnn.Close();sqlcnn = null;}}protected void Button3_Click(object sender, EventArgs e){int deleteCount;String sqlconnstr = ConfigurationManager.ConnectionStrings ["ApplicationServices"].ConnectionString;SqlConnection sqlcnn = new SqlConnection(sqlconnstr);//创建command对象SqlCommand sqlcommand = new SqlCommand();sqlcnn.Open();//给command对象的属性赋值sqlcommand.Connection = sqlcnn;mandText = "delete from Employees where ID = @id";sqlcommand.Parameters.AddWithValue("@id", TextBox6.Text);deleteCount = sqlcommand.ExecuteNonQuery();try{if (deleteCount > 0){Response.Write("<script>alert('删除成功,请点击提交!')</script>"); }else{Label7.Text = "删除失败!";}}catch (Exception ex){Label1.Text = "错误原因" + ex.Message;}finally{sqlcommand = null;sqlcnn.Close();sqlcnn = null;}}protected void Button4_Click(object sender, EventArgs e){String sqlconnstr = ConfigurationManager.ConnectionStrings ["ApplicationServices"].ConnectionString;SqlConnection sqlcnn = new SqlConnection(sqlconnstr);//创建command对象SqlCommand sqlcommand = new SqlCommand();try{sqlcnn.Open();//给command对象的属性赋值sqlcommand.Connection = sqlcnn;mandText = "select * from Employees where ID = @id";sqlcommand.Parameters.AddWithValue("@id", TextBox6.Text);SqlDataReader dataReader = sqlcommand.ExecuteReader();while (dataReader.Read()){Label9.Text = dataReader.GetString(0) + "";TextBox2.Text = dataReader.GetString(1) + "";TextBox7.Text = dataReader.GetString(2) + "";TextBox4.Text = dataReader.GetString(3) + "";TextBox5.Text = dataReader.GetDateTime(4) + "";Label7.Text = "成功获取信息";}}catch (System.Exception ex){Label7.Text = "错误信息" + ex.Message;}finally{sqlcommand = null;sqlcnn.Close();sqlcnn = null;}}}8.源码:public partial class WebForm1 : System.Web.UI.Page{protected void Page_Load(object sender, EventArgs e){String sqlconnstr = ConfigurationManager.ConnectionStrings ["ApplicationServices"].ConnectionString;SqlConnection sqlcnn = new SqlConnection(sqlconnstr);//创建command对象SqlCommand sqlcommand = new SqlCommand();//给command对象的属性赋值sqlcommand.Connection = sqlcnn;//打开数据库try{sqlcnn.Open();//给command对象赋值mandText = "select * from Employees";//创建dataReader对象SqlDataReader dataReader = sqlcommand.ExecuteReader(); while (dataReader.Read()){Label1.Text += dataReader.GetString(0) + "";Label1.Text += dataReader.GetString(1) + "";Label1.Text += dataReader.GetString(2) + "";Label1.Text += dataReader.GetString(3) + "";Label1.Text += dataReader.GetDateTime(4) + "";Label1.Text += dataReader.GetString(5) + "</br>"; }}catch (System.Exception ex){Label1.Text = "错误原因" + ex.Message;}finally{sqlcommand = null;sqlcnn.Close();sqlcnn = null;}}protected void Button1_Click(object sender, EventArgs e) {Response.Redirect("Insert.aspx");}。
实验六通过odbc方式访问数据库

实验六通过ODBC方式访问数据库一、实验条件与环境1.通用PC机2.PC机必须安装Windows 2000系列、Windows XP系列或Windows NT操作系统平台3.PC机还须安装Microsoft SQL Server 2000 任意一版本(个人版、标准版、企业版)4.PC机还须安装VB、VC、C++ Builder、Dehpi等面向对象的可视化程序设计软件5.最好有一台公用的SQL Server 2000 服务器二、实验目的1.通过上机实验了解可视化程序设计语言对数据库进行访问的常用方法2.通过上机实验掌握软件开发工具面向用户提供的ODBC对象接口的概念及其作用3.通过上机实验熟悉SQL语句在面向对象编程语言中的使用4.通过上机实验熟悉通过ODBC接口访问数据库并对数据库进行操作5.通过上机实验熟悉使用ODBC来进行数据库应用程序的设计6.通过上机实验熟悉数据源的概念及数据源的创建方法1.通过上机实验熟悉ADO DATA控件的主要属性、事件、方法及其使用三、实验要求:1.要求学生至少熟悉一门面向对象的可视化程序设计语言(如:VB、VC、C++ Builder、Dehpi等)2.实验前,要求学生充分作好ADO DA TA控件、ODBC数据接口及数据源等相关内容的预习工作3.本实验涉及的实验内容最好能在2课时内完成4.实验完成后需要书写实验报告,本次实验报告需在下次实验课堂上上交四、通过ODBC方式访问数据库并进行各种数据操作的一个实例建立一个名为MyDB的数据库,然后在此数据库中建立一个名为S的数据表,有关数据表S的属性描述为:Sno,学号,数据类型为char(10);Sname,姓名,数据类型为char(8);Ssex,性别,数据类型为char(2);BirthDay,生日,数据类型为datetime(8)。
创建一个名为Students的数据源,然后利用可视化程序设计语言设计一个用户操作界面,通过ODBC数据接口和ADO DATA实现对数据库MyDB中数据表S的查询、插入、删除、修改等数据操作。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验六访问数据库一、实验目的1、熟悉通过嵌入式SQL(主语言为C++语言)编程访问数据库,及掌握游标的使用方法2、熟悉通过ODBC接口访问异构数据库并对异构数据库进行操作3、学会配置ODBC数据源4、学会各种数据库的访问方法二、实验要求1、编写一个嵌入式C++程序,实现对SQL Server2005数据库中的“学生课程数据库”的Student表中的年龄进行更新,即系统每输出一个学生记录,询问用户是否更新。
如果要更新,就输入新的年龄。
要求:提交源程序并标识必要的注释。
答:create table provider(Sno char(5)primary key,Sname char(20)not null,Ssex char(4),Sage int);insert into provider values('S1','李刚',’男’,20);insert into provider values('S2','李红',’男’,21);insert into provider values('S3','李飞',’男’,25);insert into provider values('S4','李春',’男’,21);#include<stddef.h>#include<stdio.h>#include<conio.h>#include<stdlib.h>#include<windows.h>#include<sql.h>#include<sqlext.h>#include<sqltypes.h>EXEC SQL BEGIN DECLARE SECTION;char deptname[20];char HSno[9];char HSname[20];char HSsex[2];int HSage;int NEWAGE;EXEC SQL END DECLARE SECTION;long SQLCODE;EXEC SQL INCLUDE sqlca;int main(){void ErrorHandler(void);int count=0;char yn;printf("Please choose the department name(CS/MA/IS):");scanf("%s",&deptname);EXEC SQL CONNECT TO学生课程数据库@localhost:54321USER "SYSTEM"/"MANAGER";EXEC SQL DECLARE SX CURSOR FOR SELECT Sno,Sname,Ssex,Sage FROM Student WHERE SDept=:deptname;EXEC SQL OPEN SX;for(;;){EXEC SQL FETCH SX INTO:HSno,:HSname,:HSsex,:HSage;if(sqlca.sqlcode!=0)break;if(count++==0)printf("\n%-10s%-20s%-10s%-10s\n","Sno","Sname","Ssex", "Sage");printf("%-10s%-20s%-10s%-10d\n",HSno,HSname,HSsex,HSage);printf("UPDATE AGE(y/n)?");do{scanf("%c",&yn);}while(yn!='N'&&yn!='n'&&yn!='Y'&&yn!='y');if(yn=='y'||yn=='Y'){printf("INPUT NEW AGE:");scanf("%d",&NEWAGE);EXEC SQL UPDATE Student SET Sage=:NEWAGE WHERE CURRENT OF SX;}}EXEC SQL CLOSE SX;EXEC SQL COMMIT WORK;EXEC SQL DISCONNECT学生课程数据库;return1;}2、查有关C++、Java、C#中有关资料,分别写出C++、Java、C#访问SQL Server2005数据库数据的方法及步骤。
(只写你学的那门语言即可)答:C#访问SQL Server2005数据库数据的方法及步骤如下所示:一.数据库连接字符串典型的数据库连接字符串包括:集成验证和混合验证两种模式集成验证连接字符:Data Source=locolhost;Initial Catalog=数据库名称;Integrated Security=True混合验证模式字符:Server=localhost;Initial Catalog=数据库名称;Persist Security Info=False;User ID=****; Password=****;注:1.这里的Data Source或Server表示数据源所在的计算机名称或IP地址,可以互换。
2.Initial Catalog表示连接的数据库名称,可写为database3.Integrated Security表示是否要为集成身份验证4.如果使用的是混合验证,需要提供用户名User ID和密码Password字段。
二.类和对象如下图为中的基本类,注意不是一个继承表,而是关系表 Data提供者对象客户对象DataSetDataTableDataRowDataColumn DataRelation Connection Command Command Builder DataReader DataAdapter·提供者对象:专用于每一种类型的数据源;专用于提供者的对象完成数据源中实际的读取和写入工作。
·用户对象:将数据读入到内存中后用来访问和操作的数据的对象。
提供者对象需要一个活动的连接,可以使用它们预先读取数据,然后根据需要通过用户对象使用内存中的数据,也可以使用提供者对象更新数据源中的数据,并将改动写回到数据源中。
用户对象以非连接方式使用,甚至在数据库连接关闭之后,也可使用内存中的数据。
1.提供者对象在每一个.NET数据提供者中定义的对象,其名前带有特定提供者的名称。
因此,用于OLE DB提供者的连接对象就是OleDbConnection;用于提供者的类是SqlConnection。
使用时要分别使用using System.Datat.OleDb;和using System.Data.SqlClient;(1)连接对象连接对象是我们使用的第一个对象,用于任何其它对象之前。
它提供了到数据源的基本连接(2)命令对象可以使用此对象给数据源发出命令,如“Select*from customers”。
对于不同的提供者,该对象的名称是用于SQL Server的SqlCommand,用于ODBC的OdbcCommand,用于OLE DB的OleDbCommand。
(3)CommandBuilder对象此对象用于构建SQL命令,在基于单一表查询的对象中进行数据修改。
主要用来更新数据。
对象的名称根据不同的提供者分为:SqlCommandBuilder、OdbcCommandBuilder、OleDbCommandBuilder(4)DataReader可以从数据源中读取仅能向前和只读的数据流。
对于简单的读取数据来说,此对象的性能最好。
对于不同的提供者,对象名称为:SqlDataReader、OdbcDataReader、OleDbDataReader (5)DataAdapter对象这是一个通用类,可执行针对数据源的各种操作,包括更新变动的数据,填充DataSet 对象以及其它操作。
对于不同的提供者对象名称为:SqlDataAdapter、OdbcDataAdapter、OleDbAdapter。
2.用户对象用于定义的断开、客户端的对象,它们与.NET数据提供者无关,存在于System.Data命名空间中。
(1)DataSet对象DataSet对象是用户对象的首要对象,此对象表示一组关系表,在应用程序中这些表为一个单元来引用。
例:Customer、Orders、Products是DataSet中的表,它们表示每一位顾客和它们从公司中定购的产品。
使用该对象可快速从每个表中获取所需要的数据,当与服务器断开时检查并修改数据,然后在另一个操作中使用这些修改的数据更新服务器。
DataSet运行访问低级对象,这些对象代表单独的表和关系。
这些对象是DataTable对象和DataRelation对象(2)DataTable对象此对象代表DataSet中的一个表,如Customers、Orders、或ProductsDataTable对象允许访问其中的行和列:·DataColumn对象:代表表中的一列,比如OrderID或CustomerName·DataRow对象:代表来自表的关联数据的一行,如某位客户的CustomerID、姓名、地址等。
(5)DataRelation对象此对象代表通过共享列而发生关系的两个表之间的关系。
例:Orders表中的CustomerID 列标识发出订单的客户。
可以创建DataRelation对象,通过共享列CustomerID建立Customers 和Orders表之间的关系。
3.使用System.Data命名空间在C#中使用的第一步是引用System.Data命名空间,其中含有所有的类。
将using System.Data;置于开端接下来为所使用的特定数据源引用.NET数据提供者(1)SQL 数据提供者使用的是SQL server数据库(版本7及以上),包括桌面引擎(SQL Express或MSDE),使用SQL Server专用内置.NET数据提供者Using System.Data.SqlClient;(2)数据提供者使用Oracle数据库时,使用其专用内置.NET提供者Using System.Data.OracleClient;(3)提供者使用Microsoft Access时,可以使用哪个OLE 数据提供者Using System.Data.OleDb;(4)数据提供者如果数据源没有内置的或OLEDB提供者,可使用数据提供者,因为大多数数据库都提供了ODBC接口Using System.Data.Odbc;4.用DataReader读取数据例:using System;using System.Data;using System.Data.SqlClient;using System.Collections.Generic;using System.Text;namespace ConsoleApplication1{class Program{static void Main(string[]args){SqlConnection thisConnectin=newSqlConnection(@"server=(local)\Sqlexpress;Integrated“)+“Security=true;database=test");thisConnectin.Open();SqlCommand thisCommand=thisConnectin.CreateCommand();mandText="Select*from table1";SqlDataReader thisReader=thisCommand.ExecuteReader();while(thisReader.Read()){Console.WriteLine("\t{0}\t{1}",thisReader["a"],thisReader["b"]);}thisReader.Close();thisConnectin.Close();Console.Write("Program finished,Press Enter/Retrurn to continue:");Console.ReadLine();}}}程序中提取数据的5步:(1)连接数据源;(2)打开连接;(3)发出一个Sql查询命令(4)使用DataReader读并显示数据(5)DataReader和连接(1)连接数据源:需要使用连接字符串创建一个连接对象。