热烈祝贺台州朗动科技的站长论坛隆重上线!(2012-05-28)    热烈庆祝伟大的祖国60周年生日 点击进来我们一起为她祝福吧(2009-09-26)    站长论坛禁止发布广告,一经发现立即删除。谢谢各位合作!.(2009-08-08)    热烈祝贺台州网址导航全面升级,全新版本上线!希望各位一如既往地支持台州网址导航的发展.(2009-03-28)    台州站长论坛恭祝各位新年快乐,牛年行大运!(2009-01-24)    台州Link正式更名为台州网址导航,专业做以台州网址为主的网址导航!(2008-05-23)    热烈祝贺台州Link资讯改名为中国站长资讯!希望在以后日子里得到大家的大力支持和帮助!(2008-04-10)    热烈祝贺台州Link论坛改名为台州站长论坛!希望大家继续支持和鼓励!(2008-04-10)    台州站长论坛原[社会琐碎]版块更名为[生活百科]版块!(2007-09-05)    特此通知:新台州站长论坛的数据信息全部升级成功!">特此通知:新台州站长论坛的数据信息全部升级成功!(2007-09-01)    台州站长论坛对未通过验证的会员进行合理的清除,请您谅解(2007-08-30)    台州网址导航|上网导航诚邀世界各地的网站友情链接和友谊联盟,共同引领网站导航、前进!(2007-08-30)    禁止发广告之类的帖,已发现立即删除!(2007-08-30)    希望各位上传与下载有用资源和最新信息(2007-08-30)    热烈祝贺台州站长论坛全面升级成功,全新上线!(2007-08-30)    
便民网址导航,轻松网上冲浪。
台州维博网络专业开发网站门户平台系统
您当前的位置: 首页 » ASP/ASP.NET编程 » 总结了一下ADO.NET数据库连接的相关知识

总结了一下ADO.NET数据库连接的相关知识

论坛链接
  • 总结了一下ADO.NET数据库连接的相关知识
  • 发布时间:2009-05-11 10:07:08    浏览数:6896    发布者:tznktg    设置字体【   
ADO.NET提供了多种对象模型,比较典型的以下有五种,它们全部归类在System.Data.SqlClient名称空间下。

一、SqlConnection对象

ADO.NET使用SqlConnection对象与SQL Server进行连接。连接字符串的常用形式有两种:

1.使用Windows集成安全身份认证,例如:string connectionString ="IntegratedSecurity=SSPI;Database=MyDatabase.mdf;Server=localhost;";

或:string connectionString = "Initial Catalog= MyDataBase; Data Source=localhost;Integrated Security=SSPI;"

2.在连接字符串中指定服务器名、用户id、用户口令、数据库名等信息。例如:string connectionString = "server=localhost; uid=sa; pwd=123; database=MyDatabase.mdf";

然后通过连接字符串直接创建SqlConnection对象,如SqlConnection conn = new SqlConnection(connectionString);

二、SqlCommand对象

在ADO.NET中,有两种操作数据库的方式:

1.无连接的方式;

2.保持连接的方式。

不论采用哪种方式,都可以通过SqlCommand对象提供的方法传递对数据库操作的命令,并返回命令执行的结果。

在保持连接的方式下操作数据库的一般步骤为:

1.创建SqlConnection的实例;

2.创建SqlCommand的实例;

3.打开连接;

4.执行命令;

5.关闭连接。

SqlCommand对象提供了多种完成对数据库操作的方法。常用有:

1.ExecuteNonQuery

该方法执行SQL语句的结果,但不返回命令执行的表数据,仅返回操作所影响的行数。

2.ExecuteReader

ExecuteReader方法提供了只向前的、顺序的快速读取数据库中数据的方法。该方法根据提供的SELECT语句,返回一个可以顺序读取的SqlDataReader对象,编程者可以使用Read方法循环依次读取每个记录中各字段(列)的内容。

3.ExecuteScaler()

该方法用于执行SELECT查询,得到的返回结果为一个值的情况,比如使用count函数求表中记录个数或者使用sum函数求和等。

三、SqlDataAdapter对象

SqlDataAdapter对象通过无连接的方式完成数据库和本地DataSet之间的交互。使用这种方式操作数据库的一般步骤为:

1.创建SqlConnection的实例;

2.创建SqlDataAdapter的实例,需要的话,根据select语句生成其他SQL语句;

3.创建DataSet的实例;

4.使用Fill方法将数据库中的表填充到DataSet的表中;

5.利用DataGridView或者其他控件对象编辑或显示数据;

6.需要的话,使用Update方法更新数据库。

SqlDataAdapter对象通过SelectCommand、InsertCommand、UpdateCommand和DeleteCommand属性为后台数据库提供对应的操作命令,并传递需要的参数。一般情况下,只需要提供SELECT语句和连接字符串创建SqlDataAdapter对象,然后利用SqlCommandBuilder对象生成InsertCommand、UpdateCommand和DeleteCommand属性。

四、DataTable对象

ADO.NET可以在与数据库断开连接的方式下通过DataSet或DataTable对象进行数据处理,当需要更新数据时才重新与数据源进行连接,并更新数据源。DataTable对象表示保存在本机内存中的表,它提供了对表中行列数据对象的各种操作。可以直接将数据从数据库填充到DataTable对象中,也可以将DataTable对象添加到现有的DataSet对象中。在断开连接的方式下,DataSet对象提供了和关系数据库一样的关系数据模型,代码中可以直接访问DataSet对象中的DataTable对象,也可以添加、删除DataTable对象。

1. 创建DataTable对象

可以通过以下两种方式创建DataTable对象:

1) 通过DataTable类的构造函数创建DataTable对象,例如:

DataTable table = new DataTable();

2) 通过DataSet的Tables对象的Add方法创建DataTable对象,例如:

DataSet dataset = new DataSet();

DataTable table = dataset.Tables.Add("MyTableName");

2. 在DataTable对象中添加列

在DataTable对象中添加列的最常用的方法是通过DataTable对象的Column属性中的Add方法。添加后的每一列都是一个DataColumn对象。

3. 设置DataTable对象的主键

关系数据库中的表一般都有一个主键,用来惟一标识表中的每一行记录。通过DataTable对象的PrimaryKey属性可以设置Datatable的主键。主键可以是一个或者多个DataColumn对象组成的数组。例如:

DataColumn[] key = new DataColumn[1];//dt是一个DataTable对象

key[0] = dt.Columns[0];

dt.PrimaryKey = key;

4. 在DataTable对象中创建行

DataTable对象的每一行都是一个DataRow对象,所以创建行时可以先利用DataTable对象的NewRow方法创建一个DataRow对象,并设置新行中各列的数据,然后利用Add方法将DataRow对象添加到表中

5. 将SQL Server数据库中的表填充到DataTable中

除了可以直接创建DataTable对象的行列信息外,也可以通过DateAdapter对象的Fill方法将SQL Server数据库中的表填充到DataTable对象中。

五、DataSet对象

1. 创建DataSet对象

使用创建的DataSet对象可以完成各种数据操作,利用向导生成的数据库数据源是一个强类型的DataSet以及一对或多对强类型的DataTable和TableAdapter的组合。类型化的DataSet是一个生成的类,是从.NET Framework的一般DataSet类衍生来的,但提供了已定义的架构以及特定于该架构的属性和方法。同时,对于DataSet中的每个表,还生成了特定于该DataSet的附加衍生类,而且每个类都为相关的表提供了特定的架构、属性和方法。

当然,也可以直接创建一般的DataSet对象,例如:

DataSet myDataset = new DataSet();

2. 填充DataSet对象

创建DataSet后,就可以使用SqlDataAdapter对象把数据导入到DataSet对象中,比如通过Fill方法将数据填充到DataSet中的某个表中。
娱乐休闲专区A 影视预告B 音乐咖啡C 英语阶梯D 生活百科
网页编程专区E AMPZF HTMLG CSSH JSI ASPJ PHPK JSPL MySQLM AJAX
Linux技术区 N 系统管理O 服务器架设P 网络/硬件Q 编程序开发R 内核/嵌入
管理中心专区S 发布网址T 版主议事U 事务处理