第8章 数据的排序、搜 索和过滤.

Slides:



Advertisements
Similar presentations
計算機程式及實習 Computer Program Design and Experiment) 期末報告 ppt 南台科技大學機械工程系 姓名 : 蔡中銘 學號 :4A 授課老師 : 謝慶存大帥哥.
Advertisements

視窗應用程式表單的基本輸出入 資管系 助理教授 詹曉苓.
題目:徽章之記憶 南台科技大學 機械系 車輛一乙 學號:4A 姓名:黃冠嘉 教師:謝慶存
計算機程式及實習 期末報告 題目:超級猜一猜
計算機程式及實習 期末報告 題目:商店結帳系統
第21章 .NET报表设计 (时间:1.5次课,3学时).
浙江省深化高校考试招生制度综合改革试点方案(2017新方案)
ooxx這個遊戲程式,非常的簡單只要你小時候會玩井字遊戲即可把電腦打敗,可以說是一種考智力取勝的遊戲。
課程名稱:程式設計 授課老師:________
摇摆的中东地区 永嘉县实验中学 张 杰.
摇摆的中东地区 永嘉县实验中学 张 杰.
南台科技大學 機械工程系 車輛一甲 學號:4A 學生:黃信成 老師:謝慶存
第8章 设计数据库应用网站 本章讲述的主要内容 8.1 数据库基础知识 8.2 使用数据库系统 8.3 SQL查询基础
Visual Basic 2005學習範本 第5章 選擇結構.
1.了解VB6.0的功能特点 、集成环境。 2.理解面向对象程序设计的几个概念。 3.掌握VB应用程序设计的步骤。
我国的宗教政策 第七课第三框.
网 络 课 程 马 鞍 学 网 络 山 课 程 大 络 网 Visual Basic程序设计 第 一 讲 最容易接受的编程语言
Visual Basic 期中報告 組長:沈亞臻 組員:蔣佳育 張庭茹
Visual Basic.NET 程序设计语言课程内容
題目:台灣客運 南臺科技大學 機械工程系 班級:奈米一乙 學號:4A 姓名:蔡政堯 授課教師:謝慶存
Ch03 VB.NET語法建立ASP.NET 網頁程式設計.
CH10.
BLANK overview.
程式語言Visual Basic 變數的可視範圍
CH11.
Visual C# 2010 程式設計經典 第15章 ADO .NET與資料工具.
建立VB.NET應用程式 資管系 助理教授 詹曉苓.
第2章 建立Visual Basic應用程式.
課程名稱:資料庫系統 授課老師:李春雄 博士
第16章 Windows Form與資料繫結 16-1 資料繫結的基礎 16-2 在專案新增資料來源 16-3 使用資料來源建立單筆編輯表單
第15章 数据报表与数据图表.
程式語言 -Visual Basic 變數、常數與資料型態.
遠東科技大學資訊工程系 王善揚 可嵌入物件題庫系統 設計與開發 遠東科技大學資訊工程系 王善揚
程式語言 I – VISUAL BASIC 選擇結構語法與應用 Chapter 7 認知
課程名稱:資料庫系統 授課老師:李春雄 博士
第20章 LINQ 資料查詢技術 注意: 本投影片僅供本書上課教師使用,非經同意請勿上網轉載或拷貝.
課程名稱:資料庫系統 授課老師:李春雄 博士
第2章 ADO.NET 2.0概述.
第十四章 資料庫應用程式 14.1 ADO.NET簡介 14.4 資料的單筆巡覽、新增、 修改、刪除
Visual Studio IDE基本操作 建國科技大學 資管系 饒瑞佶.
初识Visual Basic.
数据保护技术(完整性、并发性、安全性和数据库恢复)
Timer & Format.
第10章 視窗應用程式的工具列與功能表.
操作数据库 C#程序设计课程组.
機器人-Robot Nobody 機器人.
form1 卡拉OK pictureBox1 fish1.bmp pictureBox2 fish2.bmp label1 卡拉OK字幕機
程式設計 Visual Basic簡介 週次:1 建國技術學院 資管系 饒瑞佶 2003年9月17日.
新觀念的 VB6 教本 第 6 章 資料型別.
Ch03 基本輸出入介面設計 視窗程式設計 授課教師:王大瑾.
疾病预防控制绩效考核管理软件 开发思路 & 使用说明
第 8 章 VB.NET与数据库应用程序 本章主要内容: ADO.NET体系结构; VB.NET与SQL Server数据库的连接;
Visual Basic.NET 程序设计语言课程内容
数据库技术与应用 (开学篇) 同济大学.
第4章 視窗應用程式的基本輸出入 4-1 物件基礎程式設計 4-2 表單控制項 4-3 按鈕控制項 4-4 資料輸出的標籤控制項
題目:南台飲料店結帳系統 南台科技大學 機械工程系 車輛一甲 學號:4A
菜单、状态栏和工具栏 菜单 状态栏 工具栏 编写代码 创建用户界面 Debug and Deploy 使用 Visual
程式語言(I)- Visual Basic 6.0 第 8 章 模組化程式設計I-副程式與自定函數.
第1章 Visual Basic 简介 郭清溥.
VB语言程序设计教程.
小结 郭清溥.
計算機程式及實習 Computer Program Design and Experiment) 期末報告ppt製作 南台科技大學 機械工程系 題目:南台電影城結帳系統 班級 : 車輛一甲 學號 : 4A 授教學生: 阮偉倫 授課老師: 謝慶存.
21世纪高职高专规划教材 C#语言程序设计 李继武 彭德林 主 编 张 珑 赵 松 周建辉 副主编
第 10 章 ADO.NET與XML.
第9章 创建与使用菜单、工具栏和状态栏 大多数基于Windows的应用程序均使用菜单、工具 栏和状态栏。其中,用户通过菜单及工具栏实现 各种期望地操作;使用状态栏获得系统以及软件 的状态信息。本章将带领读者学习如何创建与使 用这些控件。
程序基础 2019/4/25.
計算機程式及實習 Computer Program Design and Experiment) 期末報告ppt製作
Print方法和函数 2019/5/19.
MenuStrip by Szeto CY Visual C# 2008.
再戰DataSet.
Presentation transcript:

第8章 数据的排序、搜 索和过滤

数据访问技术—— ADO.NET 2.0 第1章: 数据库基础 第 6 章: 类型化DataSet 第 2 章: ADO.NET 2.0概述 第 3 章: 数据源连接 第 4 章: 在连接环境中获取数据 第 5 章: 构建DataSet 第 6 章: 类型化DataSet 第 7 章: 在断开连接的环境中编辑和更新数据 第 8章: 数据的排序、搜索和过滤 第 9 章: 事务 第 10 章: ADO.NET和XML 2

目标 本章学习目标: 通过DataTable对数据进行排序和搜索 掌握添加DataView到窗体的方法 运行时创建DataView 掌握在DataView 中创建calculated列的方法 进行DataView排序 掌握过滤DataView中的行的方法 根据主键值查询DataView 3

第8章 数据的排序、搜索和过滤 查看DataTable中的数据 DataView 对象 小结 实验 习题

查看DataTable中的数据 在行中定位: 代码示例C# 代码示例VB 查找多行 : 代码示例C# (1) 代码示例VB(1) 表达式:计算列 (部分小节的内容讲述如下)

查找多行的多媒体演示 多媒体演示

1 2 3 表达式:计算列 下面的示例将用到一个绑定到Windows窗体应用程序中的DataGridView的DataTable。 8.1.3 表达式:计算列 下面的示例将用到一个绑定到Windows窗体应用程序中的DataGridView的DataTable。 首先创建一个Windows窗体应用程序。并将其命名为“演示8.1”。 1 在窗体上放置一个DataGridView,确保将其Dock属性设置为 Fill。 2 在加载Form1时所调用的Form1_Load事件处理程序中,添加代码。 3

表达式:计算列 (续) 8.1.3 表达式:计算列 编译并运行程序。 4 代码示例C# 代码示例VB

第8章 数据的排序、搜索和过滤 查看DataTable中的数据 DataView 对象 小结 实验 习题 9

DataView 对象 DataView对象可以带来以下好处。 对于一个DataTable对象可以有多个数据视图,每一个数据视图都以一种不同的顺序和角度显示相应的表。 DataView可以通过Visual Studio 2005添加到窗体或者组件中,并设置其属性。这与DataTable的Select()方法不同,后者只能通过编程方式使用。

创建DataView 对象 8.2.1 通过Visual Studio 2005创建DataView 对象 拖曳一个DataGridView到窗体设计器中,再拖曳一个DataView控件到窗体设计器上,Visual Studio 2005把该控件添加到组件托盘上。 1

2 3 创建DataView 对象(续) 在“属性”窗口中,把DataView的(name)属性改为dvEmployees。 8.2.1 通过Visual Studio 2005创建DataView 对象 在“属性”窗口中,把DataView的(name)属性改为dvEmployees。 2 选择Table属性。单击其右侧的下拉箭头, 展开MySampleDataSet结点,选择“员工” 。 3

4 5 6 创建DataView 对象(续) 在“属性”窗口,把Sort属性改为“EmployeeID”。 8.2.1 通过Visual Studio 2005创建DataView 对象 在“属性”窗口,把Sort属性改为“EmployeeID”。 4 在窗体设计器中,选中名为dgvOrders 的DataGridView 控件。 5 在“属性”窗口,选择DataSource属性。 6

创建DataView 对象(续) 8.2.1 通过Visual Studio 2005创建DataView 对象 单击DataSource下拉箭头,展开其他数据源结点,展开Form1列表实例,选择dvEmployees。 7

创建DataView 对象(续) 8.2.1 通过Visual Studio 2005创建DataView 对象 按F5键运行程序。Visual Studio 2005在DataGridView中,按照员工编号的升序显示员工信息。 8 关闭程序。 9

创建DataView 对象的多媒体演示 多媒体演示

通过编程方式创建 DataView 对象 可以通过使用DataView所支持的三种构造函数重载来创建DataView。 第二种构造函数直接将DataView与DataTable相关联。 DataView 的第三种也是最后一种构造函数允许在一行代码中指定所有信息。它不仅可以指定表,而且还可以指定排序、搜索以及DataViewRowState筛选条件。

通过编程方式创建 DataView 对象 (续) RowFilter:此属性允许指定一个选择条件(类似于传入 DataTable 的 Select( ) 方法的条件),并允许筛选返回行。 Sort:此属性制定了组织视图中记录的表达式。此表达式包括排序操作的列名以及排序方向。 RowStateFilter:在对DataTable进行更改时,DataTable将把一个步骤中所做的更改保留在历史记录中。

通过编程方式创建 DataView 对象 (续) 搜索包含在DataView对象内的DataRowView的其他方法是使用Find()和FindRows()方法。 Find():与DataTable.Rows.Find()方法的工作方式类似,但是并不完全一样。 FindRows():允许返回与指定搜索条件相匹配的多个 DataRowView 对象。

1 创建一个Windows 窗体应用程序 btnLoad :数据装载 btnSort :数据排序 btnFilter :数据过滤 8.2.2 通过编程方式创建DataView 对象 在窗体设计器上放置一个 DataGridView 控件(dgView)以及4个按钮。 1 btnLoad :数据装载 btnSort :数据排序 btnFilter :数据过滤 btnFindRows :查找行

创建一个Windows窗体 应用程序(续) 8.2.2 通过编程方式创建DataView 对象 该窗体在“设计”视图中如下图所示。 2

3 4 5 创建一个Windows窗体 应用程序(续) 在项目中添加一个“数据集”文件。 8.2.2 通过编程方式创建DataView 对象 在项目中添加一个“数据集”文件。 3 按照我们在第6章介绍的方法创建一个TableAdapter。 4 在此示例中,dgView 将绑定到称为 EmployeeView 的 DataView,该 DataView 将基于 DataTable employeeTable。 5

创建一个Windows窗体 应用程序(续) 8.2.2 通过编程方式创建DataView 对象 编译并运行应用程序。 6

7 创建一个Windows窗体 应用程序(续) 8.2.2 通过编程方式创建DataView 对象 接下来,应用程序将尝试按照升序对 EmployeeBirthday 列的数据进行排序。在 btnSort 的事件处理程序中,添加下面的代码。 7 [C#] private void btnSort_Click(object sender, EventArgs e) { EmployeeView.Sort = "EmployeeBirthday ASC"; } [VB.NET] Private Sub btnSort_Click( _ ByVal sender As System.Object, ByVal e As System.EventArgs) _ Handles btnSort.Click EmployeeView.Sort = "EmployeeBirthday ASC" End Sub

创建一个Windows窗体 应用程序(续) 8.2.2 通过编程方式创建DataView 对象 编译并运行应用程序。 8

创建一个Windows窗体 应用程序(续) 8.2.2 通过编程方式创建DataView 对象 接下来,单击“数据过滤”按钮。 9

10 11 创建一个Windows窗体 应用程序(续) 最后,应用程序将根据所设定的排序键查找行。 编译并运行应用程序。 8.2.2 通过编程方式创建DataView 对象 最后,应用程序将根据所设定的排序键查找行。 10 编译并运行应用程序。 11

12 创建一个Windows窗体 应用程序(续) 再次运行应用程序。 代码示例C# 代码示例VB 8.2.2 通过编程方式创建DataView 对象 再次运行应用程序。 12 代码示例C# 代码示例VB

创建DataView 对象的多媒体演示 多媒体演示

将 DataView 转换为 DataTable ADO.NET 2.0 中值得一提的增强功能是 DataView 对象中新增的一个方法,该方法可基于 DataView 中可用的行轻松创建一个新的 DataTable。

第8章 数据的排序、搜索和过滤 查看DataTable中的数据 DataView 对象 小结 实验 习题 31

小结 8.3 小结 本章了解了针对断开数据的排序、搜索和过滤。这是ADO.NET非常重要的一个组成部分。

第8章 数据的排序、搜索和过滤 查看DataTable中的数据 DataView 对象 小结 实验 习题 33

实验 8.4 实验 参照实验手册,并在教师的指导下完成实验报告。 34

第8章 数据的排序、搜索和过滤 查看DataTable中的数据 DataView 对象 小结 实验 习题 35

习题 1.多选题: 下面关于DataTable和DataView的说法_____是正确的 。 8.5 习题 1.多选题: 下面关于DataTable和DataView的说法_____是正确的 。 A. 一个DataTable表示内存中的关系数据的一个表 B. 可以用现有的数据源来填充DataTable C. DataView表示DataTable中数据子集的对象 D. 可以使用DataView联结两个DataTable对象之间的数据 36

习题(续) 8.5 习题 2. 请简述DataTable和DataView之间有何不同 。 37

习题(续) 8.5 习题 3. 使用 DataView 控件来删除或添加一行数据,程序代码如下。 增添一个名为“Customers“的表,然后增添CustomerID和CompanyName字段,并分别赋值“ABCDE”和“ABC Products”。请分别使用Visual Studio和C#语言实现,第04行中是默认值和第06行中为CustomerID和CompanyName字段赋值。 Visual Basic 01 Dim custTable As DataTable = custDS.Tables("Customers") 02 Dim custView As DataView = custTable.DefaultView 03 custView.Sort = "CompanyName" 04 custView.AllowDelete =__________ 05 Dim newDRV As DataRowView = custView.AddNew() 06 ______________ 07 ______________ 08 newDRV.EndEdit() 38

习题(续) 8.5 习题 C# 01 DataTable custTable = custDS.Tables["Customers"]; 02 DataView custView = custTable.DefaultView; 03 custView.Sort = "CompanyName"; 04 custView.AllowDelete = _____________ 05 DataRowView newDRV = custView.AddNew(); 06 _______________ 07 _______________ 08 newDRV.EndEdit(); 39

习题(续) 8.5 习题 4. 使用DataView 控件的方法,从填充的Products表中过滤UnitsInStock <= ReorderLevel的数据,并且按照SupplierID, ProductName进行排序。请使用Visual和C#两种语言分别实现此功能。 40

习题(续) 8.5 习题 5. 创建一个显示 GridView 的 Web 窗体。GridView 的数据源是名为 dsOrders 的数据集。该数据集包含名为 Orders 和 OrderDetails 的两个数据表。使用以下代码段创建这两个数据表之间的关系。(所包含的行号仅供参考。) 01 dtOrders = dsOrders.Tables["Orders"]; 02 dtOrderDetails = dsOrders.Tables["OrderDetails"]; 03 colParent = dtOrders.Columns["OrderID"]; 04 colChild = dtOrderDetails.Columns["ParentOrderID"]; 05 dsOrders.Relations.Add("Rel1", colParent, colChild, false); 请问 05 行中出现异常的原因。 41

习题(续) 8.5 习题 6. 如果不想计算所有价格的总和,而是希望得到不高于 700 的价格之和,请使用合适的聚合函数来填充下面的程序语句块, 实现此功能 。   productsTable. ______1___ (“ _____2____ (Price)", "Price < =700") 42