Connection对象

1.连接数据库

通过SqlConnection对象的State属性判断数据库的连接状态:

public override ConnectionState State{ get;}

属性值:ConnectionState枚举

枚举值              说明

Broken               与数据源的连接中断

Closed               连接处于关闭状态

Connecting       连接对象正在与数据源连接

Executing                   连接对象正在执行命令

Fetching            连接对象正在检索数据

Open                  连接处于打开状态

Try

{

string conStr = “server=.;database=hmliang;uid=sa;pwd=”;

SqlConnection conn = new SqlConnection(conStr);

conn.Open();

if (conn.State == ConnectionState.Open)

{

}

conn.Close();

//conn.Dispose();

}

catch{}

2.关闭连接

Close方法用于关闭一个连接。

Dispose方法不仅关闭连接,而且还清理连接所占用的资源。

注:在编写应用程序时,对数据库操作完成后,要及时关闭数据库的连接,以防止在对数据库进行其他操作时数据库被占用。

Command对象

1.3个重要的属性:

a).Connection属性用于设置SqlCommand使用的SqlConnection

b).CommandText属性用于设置要对数据源执行的的SQL语句或存储过程

c).CommandType属性用于设置指定CommandText的类型。

CommandType枚举成员:

StoredProcedure:存储过程的名称

TableDirect:表的名称

Text:SQL文本命令

SqlCommand cmd = new SqlCommand();

cmd.Connection = conn;

cmd.CommandText = “SELECT COUNT(*) FROM A”;

cmd.CommandType = CommandType.Text;

int i = Convert.ToInt32(cmd.ExecuteScalar());

2.执行SQL语句

1).ExecuteNonQuery方法

执行SQL语句,并返回受影响的行数。

public override int ExecuteNonQuery();

2).ExecuteReader方法

执行SQL语句,并生成一个包含数据的SqlDataReader对象的实例。

public SqlDataReader ExecuteReader()

SqlDataReader sdr = cmd.ExecuteReader();

while(sdr.Read())

{

sdr[1].ToString();

}

Sdr.Close();

3).ExecuteScalar方法

执行SQL语句,返回结果集中的第一行的第一列

public override Object ExecuteScalar()

DataReader对象

1.判断查询结果中是否有值

public override bool HasRows{ get;};

2.读取数据

public override bool Read()

pulbic override bool Close()

DataAdapter对象

1.对象概述

DataAdapter对象是一个数据适配器对象,是DataSet与数据源之间的桥梁。

DataAdapter对象提供了4个属性,用于实现与数据源之间的互通:

a).SelectCommand属性:向数据库发送查询SQL语句

b).DeleteCommand属性:向数据库发送删除SQL语句

c).InsertCommand属性:向数据库发送插入SQL语句

d).UpdateCommand属性:向数据库发送更新SQL语句

2.填充DataSet数据集

Public int Fill(DataSet dataSet,string srcTable)

dataSet:要用记录和架构(如果必要)填充的DataSet

srcTable:用于表映射的源表的名称

返回值:已在DataSet中成功添加或刷新的行数,这不包括受不返回行的语句影响的行。

SqlDataAdapter sda = new SqlDataAdaper();

sda.SelectCommand = cmd;

DataSet ds = new DataSet();

sda.Fill(ds, “cs”);

3.更新数据源

public int Update(DataTable dataTable)

dataTable:用于更新数据源的DataTable

返回值:DataSet中成功更新的行数

// 创建一个DataTable

DataTable dt = ds.Tables[“cs”];

// 把表结构加载到tb_command表中

sda.FillSchema(dt, SchemaType.Mapped);

// 创建一个DataRow

DataRow dr = dt.Rows.Find(txtNo.Text);

// 设置DataRow中的值

dr[“姓名”] = txtName.Text.Trim();

// 实例化一个SqlCommandBuilder

SqlCommandBuilder cmdBuilder = new SqlCommandBuilder(sda);

// 调用其Update方法将DataTable更新到数据库中

sda.Update(dt);

注:在DataTable对象上可以多次使用Fill方法。如果主键存在,则传入会与已有的匹配行合并;如果主键不存在,则传入行会追加到DataTable中。

DataSet对象

1.概述

DataSet对象就像存放于内存中的一个小型数据库。它可以包含数据表、列、行、视图、约束、以及关系。通常,DataSet的数据来源于数据库或者XML,为了从数据库中获取数据,需要使用数据适配器(DataAdapter)从数据库中查询数据。

2.合并DataSet内容

Public void Merge(

DataSet dataSet,

bool preserveChanges,

MissingSchemaAction missingSchemaAction)

dataSet:其数据和架构将被合并到DataSet中

preserveChanges:要保留当前DataSet中的更改,则为true;否则为false

missingSchemaAction:MissingSchemaAction枚举值之一

MissingSchemaAction枚举成员及说明

枚举成员         说明

Add                     添加必需的列以完成架构

AddWithKey     添加必需的列和主键信息以完成架构

Error                  如果缺少指定的列映射,则生成InvalidOperationException

Ignore                忽略额外列

注:当DataSet对象为null时,无法进行合并。

ds1.Merge(ds,true,MissingSchemaAction.AddWithKey);

2.复制DataSet内容

public DataSet Copy()

《C#从入门到精通》读后总结

ADO.Net技术的更多相关文章

  1. C#ADO.NET技术总结

    [ADO.NET的主要组件-..NET framework数据提供程序和DataSet(数据集)] 一.DataSet数据集负责对数据库执行命令. 二.NET framework数据提供程序的四个核心 ...

  2. [翻译]比较ADO.NET中的不同数据访问技术(Performance Comparison:Data Access Techniques)

    Performance Comparison: Data Access Techniques Priya DhawanMicrosoft Developer Network January 2002 ...

  3. ADO.NET 访问数据库

    对数据库的访问时各种数据库应用程序开发的核心技术,.NET框架中提出的ADO.NET技术为应用程序的开发提供了一致的接口,增强了程序的可移植性和可扩展性. a:使用链接对象Connection连接数据 ...

  4. ADO.NET学习系列(一)

    一.ADO.NET基础 程序和数据库交互,要通过ADO.NET进行:通过ADO.NET就能在数据库中执行SQL了.ADO.NET中提供了对不同数据库的统一操作接口(ODBC).另外还有一种操作数据库的 ...

  5. ADO.NET学习系列(三)----做一个登录案例

    总体思路.根据用户输入的用户名和密码,来判断,和数据库里面存的是不是一样,如果一样就表明登录成功,否则就登录失败. 方案一: 1.select* from 表名 where username=&quo ...

  6. ADO

    目 录 第1章 基础    1 1.1 引入ADO库文件    1 1.1.1 版本    1 1.2 初始化OLE/COM库环境    2 1.3 comdef.h    2 1.3.1 字符串编码 ...

  7. ADO.NET数据库

    ASP.NET提供了ADO.NET技术,它是ASP.NET应用程序与数据库进行交互的一种技术. ADO.NET技术把对数据库的操作分为几个步骤,并为每个步骤提供对象来封装操作过程,从而使对数据库的操作 ...

  8. 微软.NET各子技术领域的应用前景

    从2002年微软发布.NET 1.0,其间历经了8年的发展,再到.NET 4.0,其已经成为一个庞大而复杂的软件开发与运行平台,架构日益复杂,应用领域也在不断地扩展,包容了“一堆”的子技术领域. 在. ...

  9. ADO.NET 代码示例

    转自:http://msdn.microsoft.com/zh-cn/library/dw70f090 本主题中的代码列表演示如何使用下面的 ADO.NET 技术从数据库中检索数据: ADO.NET ...

随机推荐

  1. CrystalDiskMark 的使用方法

    CrystalDiskMark 是一个测试你的硬盘或者存储设备的小巧硬盘测试工具.简单易于操作的界面让你随时可以测试你的存储设备,测试存储设备大小和测试数字都可以选择,还可测试可读和可写的速度. 具体 ...

  2. Android日期时间格式国际化

    公共类 的DateFormatSymbols 扩展对象 实现 Serializable接口 Cloneable接口 java.lang.Object的    ↳ java.text.DateForma ...

  3. WCF 托管在IIS中遇到Http的错误

    IIS8中部署WCF服务出错:HTTP 错误 404.3 - Not Found http://www.cnblogs.com/xwgli/archive/2013/03/15/2961022.htm ...

  4. 一起啃PRML - 1.2.1 Probability densities 概率密度

    一起啃PRML - 1.2.1 Probability densities @copyright 转载请注明出处 http://www.cnblogs.com/chxer/ 我们之前一直在讨论“谁取到 ...

  5. POJ_1631_Bridging_Signals_(动态规划,LIS)

    描述 http://poj.org/problem?id=1631 铁路左右相连,要求去掉一些边,使得剩下的边不交叉,求剩余边数的最大值. Bridging signals Time Limit: 1 ...

  6. team geek

    1. 转载自http://book.douban.com/review/6007037/,版权归丸子(^.^)v所有. New Google employees (we call “Nooglers” ...

  7. ssh 登录出现的几种错误以及解决办法

    首先.确保server端的ssh服务是开的(service shhd start) 然后在client端输入: ssh usrname@serverip (远程登录) scp filename usr ...

  8. Excel和XML文件导入

    using System;using System.Collections;using System.Collections.Generic;using System.Configuration;us ...

  9. 使用jenkins + python + selenium一步步搭建web自动化测试“框架”(1) - 各部件简介

    原先搭建过一个自动化测试框架,迷迷糊糊不求甚解,算是搭建了一个仅限于能用的.根本算不上框架的玩意儿. 现在回过头来好好看看究竟每一步是怎么联系起来的,是怎么运行起来的. 本次博客先说说各部件都是干什么 ...

  10. WP8模拟器需要BIOS开启虚拟化支持(转载)

    在BIOS里启用hypervisor和virtualization,然后安装WP8 SDK. 如果出现“当前用户未添加到Hyper-V管理组时”, 以管理员身份运行CMD: net localgrou ...