LINQ 建國科技大學 資管系 饒瑞佶.

Slides:



Advertisements
Similar presentations
专题复习 --- 走进名著 亲近经典 读完《鲁滨孙漂流记》这本精彩的小说 后,一个高大的形象时时浮现在我的眼 前,他就是勇敢的探险家、航海家鲁滨 孙。他凭着顽强的毅力,永不放弃的精 神,实现了自己航海的梦想。 我仿佛看到轮船甲板上站着这样的一 个人:他放弃了富裕而又舒适的生活, 厌恶那庸庸碌碌的人生,从而开始了一.
Advertisements

第二章 简单的 SQL 语句. 本章要点  创建一个简单的表  SQL 语句介绍  最简单的查询语句 select  带有限制条件的查询  查询结果的排序显示.
控制方长投下的子公司,需要编制合并报表的演示思路
LINQ基础教程 LINQ基础教程 主讲人:李春涛 徐卫东.
第6章 数据库管理软件Access 年秋.
SQL的简单查询.
十一 ASP对数据库的访问.
第六章 数据库和ADO.NET 褚龙现 软件学院.
MSN機器人的發展、應用與實作 資管三 B 葉小僑 資管三 B 李燕秋 資管三 B 洪培瑄
数据库概述 简而言之,数据库(DataBase)就是一个存储数据的仓库。为了方便数据的存储和管理,它将数据按照特定的规律存储在磁盘上。通过数据库管理系统,可以有效的组织和管理存储在数据库中的数据。如今,已经存在了Oracle、SQL Server、MySQL等诸多优秀的数据库。在这一章中将讲解的内容包括。
第一章 面向对象程序设计.
设计模式可以帮助我们改善系统的设计,增强 系统的健壮性、可扩展性,为以后铺平道路。
第13章多项目设计与开发.
C#程序设计 10软件1、2班 王槐彬 计算机工程学院.
Google App Engine Google 應用服務引擎.
第六章 學習SQL語言.
Visual C# 2010 程式設計經典 第15章 ADO .NET與資料工具.
課程名稱:資料庫系統 授課老師:李春雄 博士
課程名稱:資料庫系統 授課老師:李春雄 博士
第16章 Windows Form與資料繫結 16-1 資料繫結的基礎 16-2 在專案新增資料來源 16-3 使用資料來源建立單筆編輯表單
SQL結構化查詢語言 SQL是 Structured Query Language 的縮寫,簡單的說,SQL是一種與資料庫溝通的共通語言,它是當時在 IBM 工作的 E.F. Codd於1970 年針對關聯式模型 ( relational model ),所建構出來的資料庫理論,也因此有了所謂關聯式資料庫的系統,但在發展的初期,由於各種關聯式資料庫系統廠商的.
PHP與SQL語法存取MySQL SQL
後端教學-MYSQL 講師:邱小楓(邱珈蓉)
JAVA vs. SQL Server 建國科技大學 資管系 饒瑞佶 2013/4 V1.
連結資料庫 ACCESS MSSQL.
第八章 利用SELECT查詢資料.
An Introduce to NHibernate
課程名稱:資料庫系統 授課老師:李春雄 博士
第20章 LINQ 資料查詢技術 注意: 本投影片僅供本書上課教師使用,非經同意請勿上網轉載或拷貝.
課程名稱:資料庫系統 授課老師:李春雄 博士
第十四章 資料庫應用程式 14.1 ADO.NET簡介 14.4 資料的單筆巡覽、新增、 修改、刪除
实验 2:MS Access QBE Query使用
類別(class) 類別class與物件object.
讲课人:王璞 浙江工商职业技术学院.
5.1.1 使用 ExecuteReader()操作数据库
ASP.NET基本設計與操作 建國科技大學 資管系 饒瑞佶 2007年.
委派與執行緒 建國科技大學 資管系 饒瑞佶.
Spring & mongodb java实战mongodb 曹巍 2013年9月22日.
SQL結構化查詢語言 SQL是 Structured Query Language 的縮寫,簡單的說,SQL是一種與資料庫溝通的共通語言,它是當時在 IBM 工作的 E.F. Codd於1970 年針對關聯式模型 ( relational model ),所建構出來的資料庫理論,也因此有了所謂關聯式資料庫的系統,但在發展的初期,由於各種關聯式資料庫系統廠商的.
快递单模板的制作.
第十七章 資料庫SQL 17-1 SELECT 17-2 INSERT 17-3 UPDATE 17-4 DELETE.
資料庫管理(Access 2003) 第五章 利用查詢來 統計與分析資料 許欽嘉 老師.
Java 程式設計 講師:FrankLin.
驗證 Authentication.
C# 程序设计教程 同济大学计算机系基础学科组
C++语言程序设计 C++语言程序设计 第七章 类与对象 第十一组 C++语言程序设计.
第六章 属性、索引器、委托和事件.
FileUpload控制項 建國科技大學 資管系 饒瑞佶 2007年.
第7章 繼承/多型/介面 注意: 本投影片僅供本書上課教師使用,非經同意請勿上網轉載或供拷貝.
第11章 ListView延迟加载效果 授课老师:高成珍 QQ号: QQ群: 、
Pocket Access.
VB2005 DataBase Manipulation Command for Access
第 19 章 XML記憶體執行模式.
Entity Framework 建國科技大學 資管系 饒瑞佶.
普通高速模板的制作与调整.
第五章 介面/集合/泛型 注意: 本投影片僅供本書上課教師使用,非經同意請勿上網轉載或供拷貝.
資料庫系統 李翊豪 2017/12/21 Reference
补充:c#语言基础.
IIS Internet Information Services
本讲内容 SQL 概述 SQL 的查询功能 SQL 的操作功能 SQL 的定义功能.
JQuery 標籤操作 建國科技大學 資管系 饒瑞佶 2013/4 V1.
LINQ 語法簡介 設計人:顏嘉君.
進階UI元件:ListView元件以及複選 靜宜大學資管系 楊子青
專案建置與封裝程式 建國科技大學 資管系 饒瑞佶.
C# 匿名委派 + Lambda + Func 建國科技大學 資管系 饒瑞佶.
對於成員(member)存取權的限制 成員的資料被毫無限制的存取,任誰都可以指定任意值給成員,Java語言為了防止這種現象的產生,規定:有一種成員的資料不能任由類別外部的任何人隨意存取。
再戰DataSet.
多國語系 建國科技大學 資管系 饒瑞佶.
C#快速導讀 流程控制.
SQLite資料庫 靜宜大學資管系 楊子青.
Presentation transcript:

LINQ 建國科技大學 資管系 饒瑞佶

LINQ 將原本查詢陣列、XML、JSON、資料庫等資料的不同查詢方式統 一 可以與VB或C#語法整合使用(Language-Integrated Query) 可以與.NET Entity Framework整合 .NET Framework 3.5以後才支援 可以細分為LINQ to Objects、LINQ to XML、LINQ to DataSet、LINQ to SQL(LINQ to Entity)

使用方式 LINQ 查詢運算式Query Syntax(比較接近SQL指令) var 變數 = from 變數 in 集合 where 條件 order by 欄位 [ascending | descending] select new {欄位}; LINQ方法Method Syntax(寫法比較精簡) var 變數 = 集合.LINQ方法(Lambda運算式); 方法可以是Count、Sum、Min、Max、Average…

example int[] numbers = { 5, 10, 8, 3, 6, 12 }; // LINQ 查詢運算式 Query syntax IEnumerable<int> numQuery1 = from num in numbers where num % 2 == 0 orderby num select num; //LINQ方法 Method syntax IEnumerable<int> numQuery2 = numbers.Where(num => num % 2 == 0).OrderBy(n => n); foreach (int i in numQuery1) { label1.Text += (i + "\n"); } label1.Text += System.Environment.NewLine; foreach (int i in numQuery2) example

LINQ to SQL 建立Class Member 與 資料 class Member { public string id { get; set; } public string pwd { get; set; } public string name { get; set; } public int age { get; set; } } Member[] members = new Member[] { new Member {id="aa",pwd="111",name="a",age=11 }, new Member {id="bb",pwd="222",name="b",age=22 }, new Member {id="cc",pwd="333",name="c",age=33 } };

LINQ to SQL 做個類似帳密查詢的功能 var result = (from m in members where m.id == "aa" && m.pwd == "111" select m).FirstOrDefault(); if (result != null) MessageBox.Show(result.name); // LINQ 方法 var result1 = members.Where(m => m.id == "bb" && m.pwd == "222").FirstOrDefault(); if (result1 != null) MessageBox.Show(result1.name);

LINQ to SQL整合Entity Framework 首先加入ADO.NET實體資料模型

選擇Database-First的EF

選擇要連結的資料庫 使用EF 6.X版本建構 未來使用的Entity名稱

選擇要放入EF的資料表

建立後的EF Model

App.config中建立起連線字串

使用EF Model 直接使用datagridview顯示全部資料 NorthwindEntities db = new NorthwindEntities(); private void button1_Click(object sender, EventArgs e) { bindingSource1.DataSource= db.Customers.ToList(); dataGridView1.DataSource= bindingSource1; }

加入LINQ to SQL查詢 private void button2_Click(object sender, EventArgs e) { // 完全比對 //dataGridView1.DataSource = db.Customers.Where(a=> a.CompanyName == textBox1.Text).ToList(); // 模糊比對 dataGridView1.DataSource = db.Customers.Where(a => a.CompanyName.Contains(textBox1.Text)).ToList(); }

透過EF新增資料 private void button3_Click(object sender, EventArgs e) { // 建立一個Customers資料表的物件cus Customers cus = new Customers(); // 設定欄位值 cus.CustomerID = "ctuim"; cus.CompanyName = "ctu"; cus.Address = "ChangHua"; db.Customers.Add(cus); // 加入資料物件cus db.SaveChanges(); // 更新同步資料庫 // 重新整理datagridview bindingSource1.DataSource = db.Customers.ToList(); dataGridView1.DataSource = bindingSource1; }

從datagridview刪除資料 private void dataGridView1_UserDeletingRow(object sender, DataGridViewRowCancelEventArgs e) { var p = (Customers)bindingSource1.Current; db.Customers.Remove(p); db.SaveChanges(); // 更新記憶體中的EF foreach (var entity in db.ChangeTracker.Entries()) entity.Reload(); } dataGridView1.DataSource = bindingSource1;

修改 直接從datagridview修改後 執行下列指令就可以 db.SaveChanges();