ADO.NET主要分为五个对象:

1)Connection对象:用来连接程序与数据库。没有利用连接对象将数据库打开,是无法从数据库中取得数据的。Close和Dispose的区别,Close之后还可以用Open打开数据库,Dispose是释放资源,Dispose之后将不能再用Open。

2)Command对象:主要迎来对数据库发出一些指令,例如增删改查等指令,另外也可以调用数据库中的存储过程,这个对象时架构在Connection对象上,也就是Command对象是透过Connection连接到数据源。

3)DataAdapter:主要用在数据源以及DataSet之间执行数据传输的工作,可以通过Command对象下达命令之后,将取得的数据放入DataSet中,这个对象是架构在Command对象上,并提供了许多配合DataSetshiyong 的功能。

4)DataSet:这个对象可是看作是一个暂存区(暂时存储区域),可以把从数据库中所查询到的数据保留起来,甚至可以将整个数据库显示出来,DataSet是存放在内存中的,DataSet不仅可以存储多个Table,还可以通过DataAdapter对象取得一些例如主键的呢过的数据表结构,并可以记录数据表之间的关联。DataSet对象可以说是ADO.NET中的重量级对象,这个对象架构在DataAdapter对象上,本身不具备和数据源沟通的能力,也就是说,我们是将DataAdapter对象当做是DataSet与数据源DB之间的桥梁 ,DataSet中包含若干DataTable,DataTable中包含若干DataRow。

5)DataReader:当我们只需要循环的读取数据而不需要其他的操作的时候,可以使用DataReader对象。DataReader对象只是一次一条向下循环的读取数据源中的数据,这些数据是存在数据库服务器中的,而不是一次性加载到程序的内存中的,只能读取到当前行的数据,而且这些数据只是只读的,并不允许其他操作。因为DataReader在读取数据的时候限制了一次一条的读取,而且只能只读,所以使用起来不但节省资源而且效率很好,使用DataReader对象除了效率好之外,因为不用把数据全部传回,因此可以降低网络的负载。

总结:ADO.NET使用Connection对象来连接数据库,使用Command对象或DataAdapter对象来执行SQL语句,并将执行的结果返回给DataReader或者DataAdapter,然后在使用取得的DataReader或者DataAdapter对象操作数据结果。

以下是常用的sqlHelper.cs(部分功能实现):

using System;
using System.Collections.Generic;
using System.Configuration;
using System.Linq;
using System.Web;
using System.Data;
using System.Data.SqlClient; namespace WebApplication1.WebHelper
{
public static class SqlHelper
{
//取得连接字符串
public static readonly string connString = ConfigurationManager.ConnectionStrings["defaultConnString"].ConnectionString;
//sql操作过程:打开连接-->创建命令-->给sql语句-->执行语句-->处理结果
public static int ExecuteNonQuery(string sql)
{
using (SqlConnection conn = new SqlConnection(connString))
{
conn.Open();
using (SqlCommand cmd = conn.CreateCommand())
{
cmd.CommandText = sql;
//返回执行sql语句影响的行数
return cmd.ExecuteNonQuery();
}
}
}
public static object ExecuteScalar(string sql)
{
using (SqlConnection conn = new SqlConnection(connString))
{
conn.Open();
using (SqlCommand cmd = conn.CreateCommand())
{
cmd.CommandText = sql;
return cmd.ExecuteScalar();
}
}
} //只用来执行查询结果比较少的sql
public static DataSet ExecuteDataSet(string sql)
{
//方法1
//using (SqlConnection conn = new SqlConnection(connString))
//{
// conn.Open();
// using (SqlCommand cmd = conn.CreateCommand())
// {
// cmd.CommandText = sql;
// SqlDataAdapter adapter = new SqlDataAdapter(cmd);
// DataSet ds = new DataSet();
// adapter.Fill(ds);
// return ds;
// }
//} //方法2
using (SqlConnection conn = new SqlConnection(connString))
{
SqlCommand cmd = new SqlCommand();
PrepareCommand(cmd,conn,sql);
using (SqlDataAdapter adapter = new SqlDataAdapter(cmd))
{
DataSet ds = new DataSet();
adapter.Fill(ds);
return ds;
} ;
} } public static void PrepareCommand(SqlCommand cmd,SqlConnection conn, string sql)
{
if (conn.State != ConnectionState.Open)
{
conn.Open();
}
cmd.Connection = conn;
cmd.CommandText = sql;
}
}
}

sqlhelper.cs

  

ADO.NET的主要对象的更多相关文章

  1. C# ADO.NET的SqlDataReader对象,判断是否包含指定字段

    在使用ado.net的SqlDataReader对象时,如果SqlDataReader实例对象中没有对应的字段,则会在那一行报错.而SqlDataReader类又没有判断是否存在指定字段的方法,怎么办 ...

  2. C#反射实现 C# 反射 判断类的延伸类型 使用代码生成工具Database2Sharp快速生成工作流模块控制器和视图代码 C# ADO.NET的SqlDataReader对象,判断是否包含指定字段 页面中添加锚点的几种方式 .net 简单实用Log4net(多个日志配置文件) C# 常用小点

    C#反射实现   一.反射概念: 1.概念: 反射,通俗的讲就是我们在只知道一个对象的内部而不了解内部结构的情况下,通过反射这个技术可以使我们明确这个对象的内部实现. 在.NET中,反射是重要的机制, ...

  3. ADO.NET中主要对象

    ADO.NET是什么? ADO.NET是.Net平台提供和数据库交互的类库集,我们可以通过它对SQLSERVER,XML,Oracle等这样的数据源进行访问. 应用程序可以使用ADO.NET链接到数据 ...

  4. 温故而后知新——对ado.net中常用对象的一些解释

    在使用ado.net连接数据库获取数据,一般的步骤是: 1.设置好web.config    //用来设置服务器数据库的地址以及登录名密码 2.创建Connection对象    //用来创建访问数据 ...

  5. ADO.NET中COMMAND对象的ExecuteNonQuery、ExcuteReader和ExecuteScalar方法

    1.ExecuteNonQuery方法.该方法执行更新操作,即与UPDATE.INSERT.DELETE等语句有关的操作,在这种情况下,返回值是命令影响的行数.对其他语句,如SET或CREATE,则返 ...

  6. ADO.NET的五大对象【转】

    ADO.NET是一组用于和数据源进行交换的面向对象类库.通常情况下,数据源是数据库,也可以是文本文件.Excel表或XML文件.ADO.NET的主要类对象有Connection.Command.Dat ...

  7. ADO.NET的五大对象

    ADO.NET是一种数据访问技术,使得应用程序可以连接到数据库存储,并以各种方式操作存储在其中的数据.该技术基于.NETFramework,与.NET Framework类库的其余部分高度集成. 其中 ...

  8. ADO.NET中的五个主要对象

    Connection:主要是开启程序和数据库之间的连接.没有利用连接对象将数据库打开,是无法从数据库中取得数据的.Close和Dispose的区别,Close以后还可以Open,Dispose以后则不 ...

  9. 【转】ADO.NET中的五个主要对象

    Connection 物件    Connection 对象主要是开启程序和数据库之间的连结.没有利用连结对象将数据库打开,是无法从数据库中取得数据的.这个物件在ADO.NET 的最底层,我们可以自己 ...

随机推荐

  1. atcoder/CODE FESTIVAL 2017 qual B/B(dfs染色判断是否为二分图)

    题目链接:http://code-festival-2017-qualb.contest.atcoder.jp/tasks/code_festival_2017_qualb_c 题意:给出一个含 n ...

  2. P4718 【模板】Pollard-Rho算法

    题面 传送门 题解 题解 太神仙了学不来orz //minamoto #include<bits/stdc++.h> #define R register #define ll long ...

  3. atcoder 2579

    You are taking a computer-based examination. The examination consists of N questions, and the score ...

  4. Java实现几分钟之后调度任务的定时器

    几分钟之后执行某一操作,使用定时器Timer可以实现 Timer是jdk中提供的一个定时器工具,使用的时候会在主线程之外起一个单独的线程执行指定的计划任务,可以指定执行一次或者反复执行多次. 具体实现 ...

  5. Apache 403 错误。。

    两个方面.. 一: httpd.conf  是否有 <directory '/www'></directory> 是否有  Deny from all 或者 Require l ...

  6. Python的安装位置与Python库

    如何查看Python的安装位置: 输入 where python ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ...

  7. Socket通信客户端和服务端代码

    这两天研究了下Socket通信,简单实现的客户端和服务端代码 先上winfrom图片,客户端和服务端一样 服务端代码: using System; using System.Collections.G ...

  8. 4.centos7 docker 安装

    参考这个文档进行安装docker: http://www.runoob.com/docker/centos-docker-install.html 开机启动 systemctl enable dock ...

  9. my.梦幻手游_XP

    1.http://my.netease.com/thread-459708-1-1.html 2. 3.

  10. Dev Express Report 学习总结(七)Dev Express Reports 常见知识点总结

    1. CalculatedField中常见表达式: A. For percent: [ValA]* 100 / ([ValA]+[ ValB]);           PS. Please remre ...