博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
使用数据视图
阅读量:7117 次
发布时间:2019-06-28

本文共 2213 字,大约阅读时间需要 7 分钟。

前面的示例显示了如何使用Select方法动态筛选和排序数据表所包含的数据。ADO.NET有另一种方法可以完成相同的操作,即数据视图。数据视图是System.Data.DataView类的实例,可以创建存储在底层数据表中的数据的动态视图,以反映对其内容和排序所做的所有变化。它不同于Select方法,Select返回数据视图的数组,其内容只反映数据值所做的变化,不涉及其排序。

注意:数据视图是数据表内容的动态表示。与SQL视图一样,它不保存数据。

实例:使用DataView对象细化数据

View Code
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Data;using System.Data.SqlClient;namespace DataViews{    class Program    {        static void Main(string[] args)        {            string connString = @"            server = .;            integrated security =true;            database =northwind";            string sql = @"select contactname,country             from customers";            SqlConnection conn = new SqlConnection(connString);            try            {                conn.Open();                SqlDataAdapter da = new SqlDataAdapter();                da.SelectCommand = new SqlCommand(sql, conn);                DataSet ds = new DataSet();                da.Fill(ds, "customers");                DataTable dt = ds.Tables["customers"];                DataView dv = new DataView(dt, "country ='Germany'", "country", DataViewRowState.CurrentRows);                foreach (DataRowView drv in dv)                {                    for (int i = 0; i < dv.Table.Columns.Count; i++)                        Console.Write(drv[i] + "\t");                    Console.WriteLine();                }            }            catch (SqlException e)            {                Console.WriteLine("Error: {0}", e.ToString());            }            finally            {                conn.Close();            }            Console.ReadKey();        }    }}

示例说明

创建一个新的DataView对象,给其构造函数传递4个参数,对其进行初始化:

DataTable dt = ds.Tables["customers"]; 

DataView dv = new DataView(dt, "country ='Germany'", "country", DataViewRowState.CurrentRows);

第一个参数是DataTable,第二个是对数据表内容进行筛选和筛选器,第三个是排序列,最后一个参数指定要在数据视图中包含的行的类型。

System.Data.DataViewRowState对象是一个枚举,代表行在数据视图的底层数据表中可以拥有的不同状态。

视图实质就是获得Table以后,对其进行处理格式,用视图显示。

接下来,遍历数据视图中的行:

foreach (DataRowView drv in dv)

                {
                    for (int i = 0; i < dv.Table.Columns.Count; i++)
                        Console.Write(drv[i] + "\t");
                    Console.WriteLine();
                }

DataRowView代表数据视图中的单个行。

DataView对象可以提供一种强大而灵活的方法来动态更改视图的内容。

 

转载地址:http://eofel.baihongyu.com/

你可能感兴趣的文章
PHP编程效率的20个要点
查看>>
mysql主从数据不一致问题解决
查看>>
go 入门学习笔记之 条件判断 if switch (七)
查看>>
Linux下清空用户登录记录和命令历史的方法
查看>>
Visual Sudio 复制窗体文件
查看>>
实例变量并不安全(java)
查看>>
修改系统文件(cookie、桌面、我的文档)位置
查看>>
我的友情链接
查看>>
我的友情链接
查看>>
debian6 Redis+phpredis安装
查看>>
Google Auth+openssh
查看>>
NFS服务器配置及客户端挂载
查看>>
ELK(elasticsearch+logstash+kibana)开源日志分析平台搭建
查看>>
Debian 8.0桌面系统root用户登录和root用户自动登录
查看>>
Windows 8 新启动方式:混合启动(Hybrid Boot)
查看>>
*.manifest 文件
查看>>
要在jsp界面上显示一行三个控件
查看>>
我的linux学习之路-文件的创建于删除
查看>>
Linux日志分析
查看>>
ORA-00600: internal error code, arguments: [kcratr_nab_less_than_odr]
查看>>