C#程序设计基础教程 教学课件 ppt 作者 赵华增 张磊 张锋 周春辉 C#程序设计基础教程第6章

上传人:E**** 文档编号:89342959 上传时间:2019-05-23 格式:PPT 页数:89 大小:635.50KB
返回 下载 相关 举报
C#程序设计基础教程 教学课件 ppt 作者  赵华增 张磊 张锋 周春辉 C#程序设计基础教程第6章_第1页
第1页 / 共89页
C#程序设计基础教程 教学课件 ppt 作者  赵华增 张磊 张锋 周春辉 C#程序设计基础教程第6章_第2页
第2页 / 共89页
C#程序设计基础教程 教学课件 ppt 作者  赵华增 张磊 张锋 周春辉 C#程序设计基础教程第6章_第3页
第3页 / 共89页
C#程序设计基础教程 教学课件 ppt 作者  赵华增 张磊 张锋 周春辉 C#程序设计基础教程第6章_第4页
第4页 / 共89页
C#程序设计基础教程 教学课件 ppt 作者  赵华增 张磊 张锋 周春辉 C#程序设计基础教程第6章_第5页
第5页 / 共89页
点击查看更多>>
资源描述

《C#程序设计基础教程 教学课件 ppt 作者 赵华增 张磊 张锋 周春辉 C#程序设计基础教程第6章》由会员分享,可在线阅读,更多相关《C#程序设计基础教程 教学课件 ppt 作者 赵华增 张磊 张锋 周春辉 C#程序设计基础教程第6章(89页珍藏版)》请在金锄头文库上搜索。

1、(时间:12次课,24学时),第六章 学习情境:商品采购管理系统数据操作,第六章 商品采购管理系统数据操作,上一章中已经构造了Invoice类(发票ID、发票NO、客户名称、日期、金额合计、填表人、收款人、单位名称)和Commodity类(商品ID、品名、规格、单位、数量、单价、金额、发票NO),本章讲解如何使用LINQ去管理和存放这些类的对象。,第六章 商品采购管理系统数据操作,6.1 学习情境引入 6.2 基础知识1:LINQ语法基础 6.3 基础知识2:O/R设计器 6.4 基础知识3:DataContext类 6.5 综合实训 6.6 实施:实现登录和发票添加功能 6.7 小结,6.1

2、 学习情境引入,6.1.1 项目需求 6.1.2 展示 6.1.3 技术分解,6.1.1 项目需求,有若干发票(每张发票包含多种商品),用计算机的语言说就是有若干Invoice对象和若干Commodity对象,需要在计算机中长期保存,并能在需要的时候查找这些信息,在一定情况下还要修改或者删除某些信息。那么,如何实现这些操作呢?这就需要用到数据库的知识。 数据库是一门专门的技术,这里不做讲解。对于学生,只需理解数据库就是存储数据的仓库,它将若干类的对象,按照某种特定的规则长期保存在磁盘(或者其他介质)中。需要创建一个数据库文件DBInvoice,把若干Invoice对象和若干Commodity对

3、象保存到数据库文件中,并对其进行查询和管理。,6.1.1 项目需求,1功能性需求 完善登录窗体。在第4.2.3小节中,已经介绍过登录窗体,但那时并没有用到数据库文件的知识,仅仅是简单地应用if语句来实现的。在本章中,登录时首先判断数据库文件是否存在,如果不存在,创建数据库文件,并添加一个用户名为 “admin”,密码为“123”的账户;如果存在,则判断用户名、密码是否正确。 实现发票添加功能。能将发票添加到数据库文件中保存,并能自动计算出金额和金额合计。,6.1.1 项目需求,2非功能性需求 发票添加界面的布局是否合理,尽量参照实际发票的样式。 DataGridView样式设计是否友好。 能否

4、实现金额的自动计算。 执行保存操作时,是否有必要的信息提示对话框。,6.1.2 展示,1用户登录窗体 “用户登录”窗体如图6-1所示。,图6-1 “用户登录”窗体,6.1.2 展示,2发票添加窗体 “发票添加”窗体如图6-2所示。,图6-2 “发票添加”窗体,图6-2 “发票添加”窗体,6.1.3 技术分解,通过前面章节的学习,窗体和控件应该已经不陌生了,图6-1所示的控件与前面用到的控件是一样的,但是图6-2中所示的DataGridView控件的模样和前面学习的有所不同,这是怎样设置的呢?怎么判断用户输入的用户名和密码是否正确?怎样保存发票信息?要完成这些功能,需要学习如下基础知识。 1LI

5、NQ语法基础 LINQ的英文全称是Language Integrated Query,中文翻译为“语言集成查询”,集成在.NET编程语言中。本章需要掌握LINQ查询的基本语法以及部分扩展方法的使用。,6.1.3 技术分解,2O/R设计器 对象关系设计器(O/R 设计器)提供了一个可视化的设计界面,用于创建基于数据库对象的 LINQ to SQL 实体类和关联(关系)。它生成一个DataContext类,用其实例化对象,可在实体类与数据库之间发送和接收数据。对于本书的学习情境来说,可以用它来设计LINQ to SQL 实体类:User类、Invoice类和Commodity类。 3DataCon

6、text DataContext又称为数据上下文,它为LINQ to SQL提供操作数据库的接口。如果使用LINQ to SQL操作数据库,则首先需要为数据库创建一个继承于DataContext类的子类,并在该子类中定义表、操作数据的方法等。在本书的学习情境中,我们需要创建数据库文件,更新数据库文件,并对其实体对象进行插入和删除操作。,6.2 基础知识1:LINQ语法基础,LINQ语法基础例题 6.2.1 var关键字 6.2.2 基本子句 6.2.3 执行查询,LINQ语法基础例题,LINQ定义了一组标准查询操作符,应用于所有基于.NET平台的编程语言中。标准查询操作符允许查询所有基于IEn

7、umerable接口的数据源,并且还允许自定义扩展操作符来扩大标准查询操作符集。 下面先来看几个关于LINQ的例子,感受一下LINQ的使用方法。,LINQ语法基础例题,【例6-1】 查询整型数组中值大于50的元素,将这些元素显示在ListBox控件中,并在Label控件中显示出满足条件的第1个元素。数组中的元素为:35、84、61、13、79、68、56、57、62、90。 运行结果如图6-3所示。 双击“buttonQuery”按钮,添加代码。,LINQ语法基础例题,图6-3 “查询整数”程序运行结果,LINQ语法基础例题,private void buttonQuery_Click(obj

8、ect sender, EventArgs e) /定义1个整型数组 int nums = 35, 84, 61, 13, 79, 68, 56, 57, 62, 90 ; /定义能从数组nums中筛选出值大于50的元素的查询语句 var valueQuery = from value in nums where value 50 select value; /清空listBox1 listBox1.Items.Clear(); /执行查询语句,遍历筛选出的元素并将其放入listBox1中 foreach (var v in valueQuery) listBox1.Items.Add(v);

9、 /在Label控件中显示出满足条件的第1个元素 labelFirstElement.Text = valueQuery.First().ToString(); ,LINQ语法基础例题,【例6-2】 查询字符串数组中包含“程序设计”字符串的元素,将这些元素显示在ListBox控件中,并在Label控件中显示出满足条件的元素个数。数组中的元素为:“C语言程序设计”、“ASP.NET网站建设”、“C#高级程序设计”、“VB程序设计”、“软件工程”、“VC.NET程序设计”、“数据库设计”、“程序设计模式”。 运行结果如图6-4所示。 双击“buttonQuery”按钮,添加代码。,LINQ语法基础

10、例题,图6-4 “查询字符串”程序运行结果,LINQ语法基础例题,private void buttonQuery_Click(object sender, EventArgs e) string values = “C语言程序设计“, “ASP.NET网站建设“,“C#高级程序设计“,“VB程序设计“, “软件工程“, “VC.NET程序设计“, “数据库设计“, “程序设计模式“ ; var valueQuery = from value in values where value.IndexOf(“程序设计“) -1 select value; listBox1.Items.Clear(

11、); foreach (var v in valueQuery) listBox1.Items.Add(v); labelElementNumber.Text = valueQuery.Count().ToString(); ,LINQ语法基础例题,【例6-3】 将若干个Invoice对象放入List 中,在DataGridView中显示出满足条件的Invoice对象的信息。Invoice类的定义见第5章。 运行结果如图6-5、图6-6所示。,【例6-3】 将若干个Invoice对象放入List 中,在DataGridView中显示出满足条件的Invoice对象的信息。Invoice类的定义见

12、第5章。 运行结果如图6-5、图6-6所示。,【例6-3】 将若干个Invoice对象放入List 中,在DataGridView中显示出满足条件的Invoice对象的信息。Invoice类的定义见第5章。 运行结果如图6-5、图6-6所示。,【例6-3】 将若干个Invoice对象放入List 中,在DataGridView中显示出满足条件的Invoice对象的信息。Invoice类的定义见第5章。 运行结果如图6-5、图6-6所示。 图6-5添加代码 图6-6添加代码,LINQ语法基础例题,图6-5 单击第1个按钮时的运行结果,点击查看代码,LINQ语法基础例题,首先将若干个Invoice

13、对象放入List 中,代码如下。 List invoiceList = new List() new Invoice 发票ID = 1, 发票NO = “00462001“, 客户名称 = “职业学院“, new Invoice 发票ID = 2, 发票NO = “00462002“, 客户名称 = “国税局“, new Invoice 发票ID = 3, 发票NO = “00462003“, 客户名称 = “化工集团“, new Invoice 发票ID = 4, 发票NO = “00462004“, 客户名称 = “职业学院“, new Invoice 发票ID = 5, 发票NO = “

14、00462005“, 客户名称 = “化工集团“, new Invoice 发票ID = 6, 发票NO = “00462006“, 客户名称 = “职业学院“, new Invoice 发票ID = 7, 发票NO = “00462007“, 客户名称 = “职业学院“, new Invoice 发票ID = 8, 发票NO = “00462008“, 客户名称 = “化工集团“, new Invoice 发票ID = 9, 发票NO = “00462009“, 客户名称 = “经贸委“, new Invoice 发票ID = 10, 发票NO = “00462010“, 客户名称 = “职

15、业学院“ ;,LINQ语法基础例题,图6-6 单击第2个按钮时的运行结果,点击查看代码,LINQ语法基础例题,双击第1个按钮,添加如下代码。 private void buttonQueryAll_Click(object sender, EventArgs e) var invoiceQuery = from invoice in invoiceList select invoice; dataGridView1.DataSource = invoiceQuery.ToList(); 双击第2个按钮,添加如下代码。 private void buttonQueryByClient_Click

16、(object sender, EventArgs e) var invoiceQuery = from invoice in invoiceList where invoice.客户名称 = “职业学院“ select new invoice.发票ID, invoice.发票NO, invoice.客户名称, invoice.收款人 ; dataGridView1.DataSource = invoiceQuery.ToList(); ,6.2.1 var关键字,在C#3.0中,提供了一种新的声明变量的方式var。通过这个关键字,在声明变量时就无需指定类型了,变量的类型是在初始化时由编译器确定的,例如: var ss = “Hello, world!“; MessageBox.Show(ss.GetType().ToString(); 上面的代码将显示Syst

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号