C# ADO.NET数据库访问技术详解

5星 · 超过95%的资源 需积分: 18 157 下载量 147 浏览量 更新于2024-07-27 3 收藏 691KB DOC 举报
"C# 访问数据库主要通过ADO.NET技术进行,包括使用Connection对象建立数据库连接,Command对象执行查询语句,DataReader对象实时读取数据,DataAdapter对象填充DataSet对象,以及利用DataGrid控件展示数据。" 在C#中访问数据库的核心在于ADO.NET框架,这是一个由微软开发的组件集合,它是对旧版ADO(ActiveX Data Objects)的升级,旨在提高数据访问的效率和灵活性,并充分利用.NET Framework的优势。 2.1 ADO.NET概述 ADO.NET的体系结构由多个关键组件构成,如Connection、Command、DataAdapter、DataSet和DataReader等,它们共同构成了数据访问的完整流程。ADO.NET设计的核心特点是离线数据处理能力,即数据可以被加载到内存中的DataSet,允许在不保持与数据库连接的情况下进行操作。 2.2 Connection对象与数据库连接 Connection对象是建立与数据库连接的关键,其常用属性包括ConnectionString,用于设置连接数据库所需的参数,如数据库服务器地址、数据库名、用户名和密码等。Connection对象的常用方法包括Open()用于打开连接,Close()用于关闭连接。 2.3 Command对象与查询语句 Command对象用于执行SQL命令,它的属性如CommandText用于设置SQL语句,CommandType用于指定命令类型(如文本、存储过程等)。Command对象的方法如ExecuteReader()返回DataReader,用于逐行读取数据,ExecuteNonQuery()用于执行非查询操作,如插入、更新或删除。 2.4 DataReader对象与数据获取 DataReader对象提供了一种向前只读的方式获取数据,适合大量数据的快速读取。其常用方法包括Read()用于移动到下一行,以及各种GetXXX()方法用于获取特定列的数据。 2.5 DataAdapter对象 DataAdapter对象作为桥梁,将数据从数据库填充到DataSet,或者将DataSet中的更改同步回数据库。其常用方法包括Fill()用于填充DataSet,Update()用于更新数据库。 2.6 DataSet对象 DataSet是一个内存中的数据集合,包含多个DataTable,提供了类似数据库的关系结构。DataSet包含DataColumn和DataRow对象,可以进行数据操作。使用DataSet可以实现数据的离线操作和事务管理。 2.7 DataGrid控件 DataGrid控件常用于显示和编辑数据,它可以与DataSet或DataTable绑定,通过数据绑定技术将数据库数据实时显示在用户界面上。DataGrid控件的代码示例通常涉及数据源的设置和事件处理。 2.8 数据库访问技术 ADO.NET支持多种数据库访问方式,如使用OLEDB.NET Provider和SQLServer.NET Provider分别对应不同的数据库类型。数据库访问过程中,需要根据实际情况选择合适的连接字符串和提供程序。 C#通过ADO.NET提供的组件模型,实现了高效且灵活的数据库访问。无论是简单的查询,还是复杂的数据库操作,都可以通过这些对象和方法来实现,同时结合DataGrid等UI控件,可以构建出功能丰富的数据库应用系统。
2015-01-26 上传
前面做项目,有数据库操作太慢。 而且,有一些新的程序员,他们对数据库操作的经验比较欠缺, 而且,.net需要学的东西就非常多,涵盖很多,还要程序员精通数据库,就更加麻烦,没有好多年的经验, 操作数据库的,一检查就有很多问题。所以,根据需要,我就找到了这个 简单的,高效,快速,方便的 .net数据库操作方案。非常直观。不需要懂数据库都能开发了。 找了好久,总算找到了,分享给大家。 ---------------------------- ------------------------------ SqLamdalf1.0 ----------================-----------================--------- .net与数据库最佳操作类。 无缝衔接sql server和.net。 不需要为操作数据库再话费大量的开发时间,节约开发成本,以及更高效,更快速,更方便。 以后将陆续支持更多的数据库。 ----------================-----------================--------- SqLamdalf1.0免费版,欢迎使用。 使用方法: 双击setup.exe 安装以后。 桌面会出现 SqLamdalf 然后直接添加到需要的程序引用中,就可以使用了。 ============================================================== 调用方法: using SqlLamdalf; //工厂方法建立连接字符串 SqlLamdalf.FactoryAnna factorySql = new SqlLamdalf.FactoryAnna(AnnaType.SqlServer, "Persist Security Info=False;Integrated Security=SSPI;Database=数据库名称;Server=sql服务器名称"); //对需要的表的对象建立对象Sql。下面例子中为两个表,目前已经支持9个表: var Sql = factorySql.Create(); //目前支持返回 1实体类Sql.ExecuteEntity,2实体类列表,3表格,4字符串,5int var sdfsf123 = Sql.ExecuteList((a, b) => Sub.Top(8).Select(a.UserId, a.UserName).From(a) ); //目前支持返回 1实体类Sql.ExecuteEntity,2实体类列表,3表格,4字符串,5int var sdfsf123 = Sql.ExecuteList((a, b) => Sub.Top(8).Select(a.UserId, a.UserName).From(a) ); //分页查询如下,注意OrderBy免费版请取消 DataTable dtUser = Sql.ExecuteDataTable((a, b) => Sub.PageSize(12).PageIndex(2).Select(a.UserId.As("ID号"), a.UserName.As("名字")).From(a).OrderBy(a.CreateDate.Desc()) ); //如需执行多条语句,请在语句后面加上Next() var sdfsf1113 = Sql.ExecuteList((a, b) => Sub.Insert(a).Values("213", "111", 11, "2012-02-02"). Next(). Select("213", "111", 11, "2012-02-02").From(a).Where(a.UserId == 123123) ); //下面是联结方式的多表查询,支持各种联结查询,&&意味and,LikeLeft意为Like '%name',LikeRight var sdfsf21 = Sql.ExecuteNonQuery((a, b) => Sub.Update(a).Set(a.RoleId == u1.RoleId, a.LoginPassword == irod.ToString(), a.UserName == "2").From(a). InnerJoin(b).On(a.UserId == b.CategoryId) .Where(a.UserId == 1 && (a.UserName + "123").LikeLeft(u1.UserName)) );