黑马程序员_ADO.NET基础
1. ADO.NET:是.net框架访问数据库的一种技术,c#要访问数据库就要用这门技术,简单的说,就是说怎么样和数据库交互(增 删 改 查)。
ADO .NET3.0 中用于存取和管理资料的两个主要元件是 .NET Framework 资料提供者和 DataSet。
2..NET Framework 资料提供者:一种明确设计用于管理资料以及快速存取顺向只读资料的元件。它的用途是连接资料库、执行命令和撷取结果。这些结果会直接处理、放入 DataSet 中以便视需要而公开给使用者、与多个来源的资料结合,或在各层之间进行远端控制。.NET Framework 资料提供者是轻量型的,可在资料来源与程式码之间建立最小层,以提升效能而不会牺牲功能。
.NET Framework 资料提供者的核心对象:
(1)Connection:连接和断开数据源。
(2)Command:代表SQL查询语句活着存储过程名,同样提供了相关数据读取器对象的访问。
(3)DataReader:提供只读只向前形式的数据访问。
(4)DataAdapter:在数据库和调用者之间传递DataSet,内置4个命令对象来实现数据的查询、插入、修改和删除操作。
3.DataSet: 可以把DataSet当成内存中的数据库,DataSet是不依赖于数据库的独立数据集合。所谓独立,就是说,即使断开数据链路,或者关闭数据库,DataSet依然是可用的,DataSet在内部是用XML来描述数据的,由于XML是一种与平台无关、与语言无关的数据描述语言,而且可以描述复杂关系的数据,比如父子关系的数据,所以DataSet实际上可以容纳具有复杂关系的数据,而且不再依赖于数据库链路。
三大特性: (1) 独立性。DataSet独立于各种数据源。
(2) 离线(断开)和连接。
(3) DataSet对象是可以用XML形式表示的数据视图,是一种数据关系视图。
使用方法: (1) 把数据库中的数据通过DataAdapter对象填充DataSet。
(2) 通过DataAdapter对象操作DataSet实现更新数据库。
(3) 把XML数据流或文本加载到DataSet。
4.自己编写的SqlHelper
(1)首先在项目中添加一个应用配置文件,起名为App.config.(注意,系统给的名是App1.config,有错误,连接不到数据库,改为App.config后才能正常运行)
<?xml version="1.0" encoding="utf-8" ?> <configuration> <connectionStrings> <add name="dbConnStr" connectionString="Data Source=.;Initial Catalog=MyTest;User Id=sa;Password=123;"/> </connectionStrings> </configuration>
(2)然后在项目中添加一个类,叫做SqlHelper
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Configuration; using System.Data.SqlClient; using System.Data; namespace _05.自己编写SqlHelper { class SqlHelper { private static string connStr =ConfigurationManager.ConnectionStrings["dbConnStr"].ConnectionString; public static int ExecuteNonQurey(string sql,SqlParameter[] parameters)//把不变的内容写在封装函数里面,把变化的部分通过参数传进来。 { using (SqlConnection conn = new SqlConnection(connStr)) { conn.Open(); using (SqlCommand cmd = conn.CreateCommand()) { cmd.CommandText = sql; cmd.Parameters.AddRange(parameters); return cmd.ExecuteNonQuery();//ExecuteNonQuery影响行的数据,删除3行就返回3,更新5行返回5. } } } public static object ExecuteScalar(string sql,SqlParameter[] parameters) { using (SqlConnection conn = new SqlConnection(connStr)) { conn.Open(); using (SqlCommand cmd = conn.CreateCommand()) { cmd.CommandText = sql; cmd.Parameters.AddRange(parameters); return cmd.ExecuteScalar(); } } } public static DataSet ExecuteDataSet(string sql,SqlParameter[] parameters) { using (SqlConnection conn = new SqlConnection(connStr)) { conn.Open(); using (SqlCommand cmd = conn.CreateCommand()) { cmd.CommandText = sql; cmd.Parameters.AddRange(parameters); SqlDataAdapter adapter = new SqlDataAdapter(cmd); DataSet dataset = new DataSet(); adapter.Fill(dataset); return dataset; } } } } }
(3)在主函数中就可以调用SqlHelper来连接数据库:
SqlHelper.ExecuteNonQurey();
SqlHelper.ExecuteScalar();
DataSet ds= SqlHelper.ExecuteDataSet();
以上三种语句就是调用SqlHelper的不同方法。
浙公网安备 33010602011771号