1 ADO.NET
1.1基本概念
ADO.NET是.NET Framework提供的数据访问服务的类库。应用程序可以使用ADO.NET连接到数据源,并检索、处理和更新数据。(同时提供对各种数据源的一致访问)
常用的四种数据源:
a.Microsoft SQL Server数据源:使用System.Data.SqlClient名称空间。
b.OLEDB数据源:使用System.Data.OleDb名称空间。
c.ODBC:数据源使用System.Data.Odbc名称空间。
d.Oracle数据源:使用System.Data.OracleClient名称空间。
PS:使用ADO.NET时必须导入System.Data.dll和System.Xml.dll。
1.2 结构
ADO.NET的两个组件:
组件1:.NET Framework数据提供程序
(
Connection:建立与特定数据源的连接。
Command:对数据源执行各种SQL命令。
DataReader:从数据源中抽取数据(只读)。
DataAdapter:用数据源填充DataSet。(Adapter适配器)。
使用DataAdapter填充DataSet对象,然后可以直接对DataSet处理,或把DataSet绑定到数据库控件。
(1)DataAdapter的Fill方法使用DataAdapter的SelectCommand的结果填充DataSet。
(2)DataAdapter的Update方法将DataSet中的更改解析回数据源。即DataAdapter将分析已做出更改并执行相应的命令(insert、update、delete)。
)
组件2:DataSet
System.Data.DataSet对象是支持ADO.NET的断开式、分布式数据方案的核心对象。
DataSet是数据的内存驻留表示形式,无论数据源是什么,它都会提供一致的关系编程模型。
2.使用ADO.NET连接和操作数据库
2.1使用数据提供程序访问数据库
步骤:
(1)创建数据库连接类。
(2)导入System.Data.OracleClient.dll,项目--》添加引用--》浏览。
(3)创建SQL命令执行函数。
(4)调用函数。
代码1:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.OracleClient;
namespace 插件测试
{
class OracleProvider
{
private static string connStirng = "Data Source=KFYCXMS;User ID=zuchekf;Password=zuchekf";//Data Source是数据库,与PL/SQL Developer软件中的数据库名一致
public string ExecuteInsert(string sql)
{
int rows=0;//影响行数
OracleConnection conn = new OracleConnection();
conn.ConnectionString = connStirng;
conn.Open();
OracleTransaction transaction = conn.BeginTransaction(); //OracleTransaction,表示要在数据库中生成的事务..BeginTransaction,开始数据库事务。
try
{
OracleCommand comm1=conn.CreateCommand();//OracleCommand,: 表示针对数据库执行的 SQL 语句或存储过程。 此类不能被继承。
comm1.CommandText = sql; //CommandText,获取或设置针对数据库执行的 SQL 语句或存储过程.
comm1.Transaction = transaction; //使用事物需要添加
rows=comm1.ExecuteNonQuery(); //执行
transaction.Commit(); //提交事物
}catch(Exception e){
transaction.Rollback();
conn.Close();
return Convert.ToString("修改失败原因:"+e);
}finally{
conn.Close();
}
return Convert.ToString(rows);
}
}
}
代码2:
private void button12_Click(object sender, EventArgs e)
{
OracleProvider oraclep = new OracleProvider();
string strInsert = "XXX";//sql语句
string re = oraclep.ExecuteInsert(strInsert);
MessageBox.Show(re);
}
PS:必须需要有安装了Oracle客户端。
2.2使用DataAdapter和DataSet访问数据库
步骤:
(1)建立数据库连接。
(2)从DataAdapter填充DataSet。
(3)操作和处理DataSet。
(4)使用DataAdapter更新数据源。
3 LINQ
3.1 LINQ to SQL
通过LINQ to SQL 可以使用LINQ计算访问SQL数据库,就像访问内存中的集合一样。
3.2 LINQ to DataSet
使用LINQ to DataSet可以充分利用语言继承查询提供的功能,快速高效地实现查询。