首页 >> 大全

浅析ADO.NET五大对象

2023-12-04 大全 22 作者:考证青年

引言

数据库应用系统中,必定要涉及到对数据库的访问和操作,而ADO.NET则是微软在.NET 中负责数据访问的类的库集,那么理清ADO.NET中的五大对象对于我们理解ADO.NET无疑会有很大的帮助。

本文将对ADO.NET做简单的介绍,分析五大对象、、、、,以及他们之间的关系。

发展

早在1997年时,微软已经开发了许多的数据访问方式,例如DAO(Data )对象、可以跨越网络访问数据的RDO( Data )以及让DAO组件可以访问ODBC数据源的技术等等。

如此多的技术,为了减少企业与开发人员在选择、学习与应用上产生的困难,同时适逢COM与OLE的发展,微软将数据访问的核心开始改写为以COM为主的OLE DB,并且在它上面创建一个新的数据访问模型ADO( Data )。

然而ADO本身的架构仍然有缺陷(尤其是在开发网络应用程序时,最好的例子就是无法脱机)。于是在1998年时,微软提出了一个下一代的应用程序开发框架( )的项目,其中就包括+,而ADO+就是+的一支。

2000年的时候,微软的 .NET项目开始成形,许多的微软产品都冠上.NET的标签,ADO+也不例外,改名为ADO.NET,并包装到.NET 类库中,成为.NET平台中唯一的数据访问组件。

分析

一图胜过千言万语,在对五个对象详细介绍之前,先用一张图来说明它们之间的关系:

这里写图片描述

面对对象分析_对象及其特征的理解_

建立与特定数据源的连接。 所有 对象的基类均为 类,是所有数据库操作的基础,在对数据库操作之前要先建立数据连接。

string connectionString = "";//连接字符串
SqlConnection connection = new SqlConnection(connectionString)//初始化 SqlConnection 类的新实例
connection.Open();//打开数据库连接
connection.Close();//关闭连接

using (SqlConnection connection = new SqlConnection(connectionString)){connection.Open();// }

对象定义了将对数据源执行的指定命令。 表示要对数据库执行的一个 -SQL 语句或存储过程。所有 对象的基类均为 类。

从数据源中读取只进且只读的数据流。 所有 对象的基类均为 类,对象只允许以只读、顺向的方式查看其中所存储的数据,提供一个非常有效率的数据查看模式,同时对象还是一种非常节省资源的数据对象。

对象充当和数据源之间用于检索和保存数据的桥梁。类代表用于填充以及更新数据源的一组数据库命令和一个数据库连接。表示一组 SQL 命令和一个数据库连接,它们用于填充 和更新数据源。

驻留于内存的数据集,可以看做是内存中的数据库,内部用XML来描述数据。 也因此可以说是数据表的集合,它可以包含任意多个数据表(), 独立于各种数据源。

说明

这里将对数据库的操作大致分为两类,一类是对数据库的查询,需要返回查询数据。一类是对数据库的增、删、改,不需要返回查询数据。下面就以这两类,结合实例说明。

查询:从上图中可以看到,想得到查询结果有三种方式:

static public int AddProductCategory(string newName, string connString)
{Int32 newProdID = 0;string sql = "INSERT INTO Production.ProductCategory (Name) VALUES (@Name); "+ "SELECT CAST(scope_identity() AS int)";using (SqlConnection conn = new SqlConnection(connString)){SqlCommand cmd = new SqlCommand(sql, conn);cmd.Parameters.Add("@Name", SqlDbType.VarChar);cmd.Parameters["@name"].Value = newName;try{conn.Open();newProdID = (Int32)cmd.ExecuteScalar();}catch (Exception ex){Console.WriteLine(ex.Message);}}return (int)newProdID;
}

private static void ReadOrderData(string connectionString)
{string queryString = "SELECT OrderID, CustomerID FROM dbo.Orders;";//sql语句using (SqlConnection connection = new SqlConnection(connectionString)){SqlCommand command = new SqlCommand(queryString, connection);connection.Open();SqlDataReader reader = command.ExecuteReader();try{while (reader.Read()){Console.WriteLine(String.Format("{0}, {1}",reader[0], reader[1]));}}finally{// 读完数据后,调用关闭reader.Close();}}
}

private void Button_Click(object sender, RoutedEventArgs e)
{string conStr = "";//连接字符串using (SqlConnection conn = new SqlConnection(conStr)){conn.Open();//打开连接string sql = "";//sql语句SqlDataAdapter sda = new SqlDataAdapter(sql,conn);//实例化SqlDataAdapter对象DataSet ds = new DataSet();sda.Fill(ds);//填充数据集}
}

添加、修改、删除,从上图中可以看到,有两种方式:

private static void CreateCommand(string queryString,string connectionString)
{using (SqlConnection connection = new SqlConnection(connectionString)){SqlCommand command = new SqlCommand(queryString, connection);command.Connection.Open();command.ExecuteNonQuery();}
}

static private DataSet UpdateDataSet(string connectionString)
{DataSet dataSet = new DataSet();//实例化数据集datasetusing (SqlConnection connection = new SqlConnection(connectionString)){connection.Open();//打开连接SqlDataAdapter adapter = new SqlDataAdapter();//实例化SqlDataAdapter对象SqlCommandBuilder builder = new SqlCommandBuilder(adapter);adapter.Fill(dataSet);//填充数据集datasetdataSet.Tables[0].Rows[0][0] = 2;//修改数据adapter.Update(dataSet);//更新dataset}return dataSet;
}

小结

以上就是对ADO.NET五大对象的简单分析,文章中出现的例子有的是MSDN上的实例,有的是自己写的,水平有限,难免会有错误,欢迎指正,一起学习。

参考资料:

%28v=vs.110%29.aspx?f=255&=-

关于我们

最火推荐

小编推荐

联系我们


版权声明:本站内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 88@qq.com 举报,一经查实,本站将立刻删除。备案号:桂ICP备2021009421号
Powered By Z-BlogPHP.
复制成功
微信号:
我知道了