C#之数据库访问

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可以充分利用语言继承查询提供的功能,快速高效地实现查询。





























评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值