ADO.NET可以在与数据库断开连接的方式下通过DataSet或DataTable对象进行数据处理,当需要更新数据时才重新与数据源进行连接,并更新数据源。

DataTable对象表示保存在本机内存中的表,它提供了对表中行列数据对象的各种操作。可以直接将数据从数据库填充到DataTable对象中,也可以将DataTable对象添加到现有的DataSet对象中

首先了解下ADO.NET的基本结构图吧

下面再说说DataTable对象创建方式

1.创建DataTable对象,采用下列两种方式之一:

  1. 使用DataTable类的构造函数创建DataTable对象,例如:

DataTable table = new DataTable( );

  1. 调用DataSet的Tables对象的Add方法创建DataTable对象

DataSet dataset = new dataSet( );

DataTable table = dataset.Tables.Add(“MyTableName”);

2. 在DataTable对象中添加列

调用DataTable对象的Column中的Add方法添加列。例如:

DataTable table = new DataTable(“table1”);

table.Columns.Add(“姓名”,typeof(System.Data.SqlTypes.SqlString));

table.Columns.Add(“年龄”,typeof(System.Data.SqlTypes.SqlInt32));

注意: 由于SQL Server数据库中的有些数据类型(如SqlDateTime、SqlDecimal和SqlString等)和公共语言运行库(CLR)不相同,要将 创建的表保存到SQL Server数据库中,要使用System.Data.SqlType命名空间中提供的SQL Server数据类型。

3 在DataTable对象中创建行

由于DataTable对象的每一行都是一个DataRow对象,所以创建行时可以利用DataTable对象的NewRow方法创建一个DataRow对象,并设置新行中各列的数据,然后利用Add方法将DataRow对象添加到表中。例如:

//dt是一个DataTable对象

DataRow row = dt.NewRow( );

row[“姓名”] = “张三”;

row[“年龄”] = 20;

dt.Rows.Add(row);

4 将SQL Server数据库中的表填充到DataTable对象中

 通过DataAdapter对象的Fill方法完成。

string connectionString = Properties.Settings.Default.MyDatabaseConnectionString;

SqlConnection conn = new SqlConnection(ConnectionString);

SqlDataAdapter adapter = new SqlDataAdapter(“Select * from MyTable2”,conn);

DataSet dataset = new DataSet( );

//如果不指定表名,则系统自动使用默认的表名

adapter.Fill(dataset);

//可以使用索引生成的表

dataGridView1.DataSource = dataset.Tables[0];

 DataSet  对象

  1. 创建DataSet对象

    • [解决方案资源管理器]--〉添加一个新建或者已经存在的数据库
    • [数据]--〉[创建数据源]--〉创建或添加一个已经存在的数据库
    • 绑定窗体控件时使用向导创建DataSet对

DataSet MyDatabase = new DataSet( );

填充DataSet对象

创建DataSet后,就可以使用SqlDataAdapter对象把数据导入到DataSet对象中,比如通过Fill方法将数据填充到DataSet中的某个表中。

ADO.NET对象之 DataTable的更多相关文章

  1. ADO五大对象(转载)

    来源:http://blog.csdn.net/u013201439/article/details/51111969 ADO五大对象(转载) 一.绪论 1.引言 在数据库应用系统中,必定要涉及到对数 ...

  2. ADO.NET 对象

    (一)OleDbConnection 使用COM组件链接 (二)ADO.NET 对对数据库访问做了优化: 1.SqlConnection 用于建立和Sql Server服务器连接的类,表示打开数据库 ...

  3. Winform开发之ADO.NET对象Connection、Command、DataReader、DataAdapter、DataSet和DataTable简介

    ADO.NET技术主要包括Connection.Command.DataReader.DataAdapter.DataSet和DataTable等6个对象,下面对这6个对象进行简单的介绍:(1)Con ...

  4. ado.net核心:DataTable对象

    概述 DataTable表示内存中数据的一个表. .net命名空间:System.Data DataTable构造方法 DataTable() //不带参数初始化DataTable 类的新实例. Da ...

  5. ADO.NET对象的详解

    1. Connection 类 和数据库交互,必须连接它.连接帮助指明数据库服务器.数据库名字.用户名.密码,和连接数据库所需要的其它参数.Connection对象会被Command对象使用,这样就能 ...

  6. 反射入门-浅谈反射用途_根据Ado游标对象创建list集合

    本人大二菜鸟一只,今天在上课期间有个同学看着C#反射的内容说反射没什么用,一时之间也想不到什么更好的例子,就写了个根据泛型类型和游标反射创建List集合的Demo. 首先创建一个用于封装对应数据的en ...

  7. Ado.net对象

    Connection对象主要提供与数据库的连接功能 Command 对象用于返回数据,修改数据,运行存储过程以及发送或检索参数信息的数据库命令. DataReader对象通过Command对象提供从数 ...

  8. ADO五大对象

     ADO.NET五大对象, 1. Connection:与数据源建立连接. 2. Command:对数据源执行SQL命令并返回结果. 3. DataReader:读取数据源的数据,只允许对将数据源以只 ...

  9. ADO.NET DataSet、DataTable、DataRow、DataView的学习

    对于一个datatable中的数据进行嵌套查询判断某几列数据是否相同从而确定这条数据是否一样,并确定他重复的次数COUNT1字段. 例如: DataTable dt = new DataTable() ...

随机推荐

  1. php抽象类的简单应用

    抽象类也是面向对象中的重要概念,和接口.继承的概念重要性相当,在面向对象的开发中,所有的对象都是通过类来描述的,但是反过来,并不是所有类都是用来描绘对象的,广义上讲如果一个类中没有足够信息来描述一个具 ...

  2. mybatis中的oracle和mysql分页

    这段时间一直在用mybatis+spring+springMVC的框架,总结点东西吧. mybatis的oracle分页写法: <?xml version="1.0" enc ...

  3. ios学习总结(1) -- 创建第一个ios项目

    原文地址 下载并打开xcode. 接着新建一个工程,如下图所示: 点击Create a new Xcode project,之后选择ios下的Application,点击Single View App ...

  4. swift复合类型

     1.元组类型 (tuple) 元组就是多个元素的组合,是一个用圆括号括起来分号分隔的多个数据的一个集合体. 例如:定义一个学生变量,要求姓名 jim,年龄 19,性别 male 的元组变量为  // ...

  5. .net学习笔记----会话状态Session

    一.会话状态Session Session用于服务器端状态管理,使用Session之后,每个客户端都可以将实际的数据保存在服务器上,对于每个客户端的数据,将会生成一个对应的唯一的key(保存在客户端) ...

  6. 【Ubuntu日常技巧】VirtualBox多网卡路由配置,保障虚拟机连接上外网

    [背景]: 配置Ubuntu 虚拟机双网卡,一个是Host-Only网络,一个是桥接网络.当在虚拟机中同时连接到两个网络后,虚拟机能够ping通内部网络,不能ping通外部网络,如www.baidu. ...

  7. 【转】解决编译Apache出现的问题:configure: error: APR not found . Please read the documentation

    这里写的很清楚了,已验证可用 http://blog.csdn.net/linghao00/article/details/7926458

  8. ORA-00824:cannot set SGA_TARGET or MEMORY_TARGET due to existing internal settings

    练习时执行一条修改数据库连接数的语句: alter system set processes=1 scope=spfile; 然后关闭数据库: shutdown 再启动数据库时,出现异常,报错信息如下 ...

  9. poj 2392 多重背包

    题意:有几个砖,给出高度,能放的最大高度和数目,求这些砖能垒成的最大高度 依据lim排个序,按一层一层进行背包 #include<cstdio> #include<iostream& ...

  10. HTML <img> 标签的 height 和 width 属性

    定义和用法 <img> 标签的 height 和 width 属性设置图像的尺寸. 提示:为图像指定 height 和 width 属性是一个好习惯.如果设置了这些属性,就可以在页面加载时 ...