数据库的访问
- 前言
- ADO.NET的概述
- ADO.NET
- 数据源
- 访问处理数据类库的两个组件:
- 引用System.Data.dll和System.Xml.dll
- 使用ADO.NET连接和操作数据库
- 使用数据提供程序访问数据库操作的典型步骤:
- (1)建立数据库连接
- (2)创建SQL命令
- (3)执行SQL命令
- (4)处理SQL命令结果
- 查询数据库表数据
- 插入数据库表数据
- 先建立数据库连接
- 然后使用SQL Insert语句创建命令,并使用Command的Parameters 属性来设置输入参数
- 最后使用命令的ExecuteNonQuery()方法执行数据库记录插入操作,并根据返回的结果判断插入的结果
- 更新数据库表数据
- 删除数据库表数据
- 使用存储过程访问数据库
- 使用DataAdapter和DataSet访问数据库
- 使用DataAdapter和DataSet访问数据库的典型步骤:
- (1)建立数据库连接
- (2)从DataAdapter填充DataSet
- (3)操作和处理DataSet
- (4)使用DataAdapter更新数据源
前言
ADO.NET的概述
使用ADO.NET连接和操作数据库
使用DataAdapter和DataSet访问数据库
ADO.NET的概述
ADO.NET
- .NET Framework提供的数据访问服务的类库
- 提供对关系数据、XML和应用程序数据各种数据源的一致访问
- 应用程序使用ADO.NET连接到数据源,检索、处理和更新数据
数据源
- SQL Server数据源:System.Data.SqlClient命名空间
- OLEDB数据源:System.Data.OleDb命名空间
- ODBC数据源:System.Data.Odbc命名空间
- Oracle数据源:System.Data.OracleClient命名空间
访问处理数据类库的两个组件:
-
.NET Framework 数据提供程序
-
DataSet
-
Connection:建立与数据源的连接
-
Command:对数据源执行各种SQL命令
-
DataReader:从数据源中抽取数据(只读)
-
DataAdapter:用数据源填充DataSet
引用System.Data.dll和System.Xml.dll
使用ADO.NET连接和操作数据库
使用数据提供程序访问数据库操作的典型步骤:
(1)建立数据库连接
创建Connection对象连接到特定的数据库
(2)创建SQL命令
使用Command对象来执行命令并从数据源中返回结果
(3)执行SQL命令
Command对象的Execute方法:ExecuteReader,ExecuteScalar,ExecuteNonQuery
(4)处理SQL命令结果
使用DataReader对象的Read方法可从查询结果中获取行
向DataReader传递列的名称或序号引用,可以访问返回行的每一列
查询数据库表数据
// (1)连接到数据库
String connString = @"Data Source=(LocalDB)\v11.0;Initial Catalog=Northwind;
AttachDbFilename=C:\C#\DB\Northwnd.mdf;Integrated Security=True;";
String commandTextQuery = "SELECT RegionID, RegionDescription FROM Region";
using (SqlConnection connection = new SqlConnection(connString))
{ connection.Open();
// (2)创建SqlCommand命令
SqlCommand cmdQuery = new SqlCommand(commandTextQuery, connection);
// (3)执行SqlCommand命令并返回结果
SqlDataReader reader = cmdQuery. ExecuteReader();
Console.WriteLine("Northwind.MDF数据库的Region表的内容如下:");
Console.WriteLine("地区编号\t地区说明");
//(4)通过循环列表显示查询结果集
while (reader.Read()){ Console.WriteLine(" {0} \t\t {1}", reader[0], reader[1]); }
reader.Close(); //关闭查询结果集
}
插入数据库表数据
先建立数据库连接
然后使用SQL Insert语句创建命令,并使用Command的Parameters 属性来设置输入参数
SqlCommand cmdInsert = new SqlCommand(commandTextInsert, connection);
cmdInsert.Parameters.AddWithValue("@id", 5);
最后使用命令的ExecuteNonQuery()方法执行数据库记录插入操作,并根据返回的结果判断插入的结果
int result = cmdInsert.ExecuteNonQuery();
if (result == 1) { Console.WriteLine("插入记录操作成功."); }
else { Console.WriteLine("插入记录操作失败."); }
更新数据库表数据
String commandTextUpdate = "Update Region Set RegionDescription = @name WHERE RegionID = @id";
删除数据库表数据
String commandTextDelete = "DELETE FROM Region WHERE RegionID = @id";
使用存储过程访问数据库
SqlCommand cmdQuery = new SqlCommand("Ten Most Expensive Products", connection);
cmdQuery.CommandType = CommandType.StoredProcedure;
使用DataAdapter和DataSet访问数据库
使用DataAdapter和DataSet访问数据库的典型步骤:
(1)建立数据库连接
通过创建Connection对象连接到特定的数据库
DataAdapter用于从数据源检索数据并填充DataSet中的表,还将对DataSet的更改解析回数据源,用Command对象检索数据
(2)从DataAdapter填充DataSet
DataAdapter的Fill方法使用DataAdapter的SelectCommand的结果集来填充DataSet
Fill方法使用DataReader对象隐式地返回用于在DataSet中创建表的列名称和类型
(3)操作和处理DataSet
以断开式操作DataSet的数据库表
包括数据的查询、插入、更新和删除等操作
(4)使用DataAdapter更新数据源
调用DataAdapter的Update方法,可将DataSet中的更改解析回数据源
//(1)连接到数据库
String connString = @"Data Source=(LocalDB)\v11.0;Initial Catalog=Northwind;
AttachDbFilename=C:\C#\DB\Northwnd.mdf;Integrated Security=True;";
String selectCommandText = "SELECT RegionID, RegionDescription FROM Region";
using (SqlConnection connection = new SqlConnection(connString))
{connection.Open();
//(2)创建DataAdapter
SqlDataAdapter adapter = new SqlDataAdapter(selectCommandText, connection);
DataSet dataSet = new DataSet();//创建DataSet
//(3)从DataAdapter填充DataSet
adapter.Fill(dataSet, "Region");
Console.WriteLine("Northwind数据库的Region表的内容如下:");
Console.WriteLine("地区编号 \t 地区说明 ");
//(4)操作和处理DataSet
foreach (DataRow row in dataSet.Tables["Region"].Rows)
{ Console.WriteLine(" {0} \t\t {1}", row["RegionID"], row["RegionDescription"]);}