手机
当前位置:查字典教程网 >编程开发 >asp.net教程 >当年学习ADO.NET的笔记
当年学习ADO.NET的笔记
摘要:那些年我还在学ADO.NET那些年学习了ASP.NET后又开始学习ASP.NET的新知识,ADO.NET用于访问数据库,一般可以分为连接模式...

那些年我还在学ADO.NET

那些年学习了ASP.NET后又开始学习ASP.NET的新知识,ADO.NET用于访问数据库,一般可以分为连接模式和非连接模式。连接模式指的是在访问数据时,一直与数据库保持连接,访问完数据后才与数据库断开连接,主要采用的ADO.NET对象是Connection、Command、DataReader等;连接模式指的是通过数据集的方式对数据库进行操作,将数据读到内存中,从而完成数据的操作,数据集会自动更新到数据库,主要采用ADO.NET对象是DataAdapter、DataSet等。下面的我们就来看一下代码吧。

本示例代码采用工厂模式的方式,这样就可以达到只改变少量的代码完成数据库之间的切换,工厂模式是要采用的对象有以下几个:DbProviderFactory、DbConnection、DbTransaction

、DbCommand、DbDataReader、DbDataAdapter、DbCommandBuilder等。

1、 共同的连接串

复制代码 代码如下:

string ProviderName = "System.Data.SqlClient";

string ConnStr = "Data Source=.;Initial Catalog=Northind;Integrated Security=True";

string sqlStr = "select * from dbo.Categories";

2、 非连接模式代码如下:

复制代码 代码如下:

public void getSqlConnection()

{

//得到一个数据提供者,根据其传入的数据提供者对象

DbProviderFactory dbf = DbProviderFactories.GetFactory(ProviderName);

//创建连接

DbConnection conn = dbf.CreateConnection();

//连接字符串

conn.ConnectionString = ConnStr;

conn.Open();

DbTransaction ts = conn.BeginTransaction();

DbCommand dbcmd = null;

try

{

dbcmd = dbf.CreateCommand();

dbcmd.CommandText = sqlStr;

dbcmd.Connection = conn;

dbcmd.Transaction = ts;

DbDataReader dr = dbcmd.ExecuteReader();

while (dr.Read())

{

Console.WriteLine(dr[1].ToString());

}

dr.Close();

ts.Commit();

}

catch (Exception e)

{

ts.Rollback();

}

finally

{

conn.Close();

if (dbcmd != null)

{

dbcmd.Dispose();

}

}

}

效果:

当年学习ADO.NET的笔记1

3、 连接模式代码:

复制代码 代码如下:

public void getDataSetConnection()

{

//得到一个数据提供者,根据其传入的数据提供者对象

DbProviderFactory dbf = DbProviderFactories.GetFactory(ProviderName);

//创建连接

DbConnection conn = dbf.CreateConnection();

//连接字符串

conn.ConnectionString = ConnStr;

//创建DataAdapter对象

DbDataAdapter da = dbf.CreateDataAdapter();

//创建自动生成sql语句对象

DbCommandBuilder dbCmdb = dbf.CreateCommandBuilder();

using (DbCommand dbcmd = dbf.CreateCommand())

{

dbcmd.CommandText = sqlStr;

dbcmd.Connection = conn;

//DbDataAdapter指定命令

da.SelectCommand = dbcmd;

//DbCommandBuilder指定dataAdpter

dbCmdb.DataAdapter = da;

DataSet ds = new DataSet();

da.Fill(ds);

// ds.Tables[0].Rows[0].Delete();

da.Update(ds);

DataTable dt = ds.Tables[0];

DataRow dr;

for (int i = 0; i < dt.Rows.Count; i++)

{

dr = dt.Rows[i];

Console.WriteLine(dr[1] + " " + dr[2]);

}

}

}

效果:

当年学习ADO.NET的笔记2

以上是一个简单的例子,在正常情况下,就不会把连接串写成字符串,应放在config文件中,同样SQL语句也会改为存储过程,这样改起来比较方便。

总结

那些年学习ADO.NET,基本了解了怎样去访问数据库,对其进行操作,现在.NET又有了一些新的方法,比如说使用Linq、DbContext等;此文以回忆那些年学习的日子。

【当年学习ADO.NET的笔记】相关文章:

ASP.NET 入门的五个步骤

ASP.NET c#生成随机数

asp.net学习中发现的比较完整的流程

如何在ASP.NET中使用三层架构

近几天对DataSet的新认识

ASP.NET缓存处理类实例

如何合并多个 .NET 程序集

asp.net自定义控件代码学习笔记

ADO.NET中的Connection对象详解

ASP.NET 页面刷新的实现方法

精品推荐
分类导航