Lập trình trên windows với microsoft® .net

Tài liệu Lập trình trên windows với microsoft® .net

pdf165 trang | Chia sẻ: Khủng Long | Lượt xem: 946 | Lượt tải: 0download
Bạn đang xem trước 20 trang mẫu tài liệu Lập trình trên windows với microsoft® .net, để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
C# co ban 1-HHK.ppt C# co ban 2-HHK.ppt C# co ban 3-HHK.ppt C# co ban 4-HHK.ppt C# co ban 5-HHK.ppt C# co ban 6-HHK.ppt C# co ban 7- HHK.ppt C# co ban 8- HHK.ppt C# co ban 9- HHK.ppt C# co ban 10-HHK.ppt Lập trình trên Windows với Microsoft® .NET Giảng viên : Hồ Hoàn Kiếm  Giới thiệu Microsoft.Net .  Giới thiệu ngôn ngữ C# và các khái niệm cơ bản.  Lập trình hướng đối tượng với C#.  Lập trình Winforms với C#.  Lập trình cơ sở dữ liệu với ADO.Net . Nội dung môn học  Khảo sát kiến trúc .Net .  Xây dựng các ứng dụng với .Net .  Các thành phần trong .Net Framework.  Vai trò của CLR và IL . Giới thiệu Microsoft.NET. Microsoft .NET Framework Architecture Windows LINUX Common Language Runtime Framework Class Library Common Language Specification Microsoft Visual Basic® .NET C++ C# Microsoft JScript® M ic ro s o ft V is u a l S tu d io ® .N E T XML Web Services Devices Servers User Experiences Developer Tools .NET Platform .NET Framework Common Language Runtime Class Library Windows Web Services ADO.NET Data Types Visual Basic Applications Visual C# Applications Visual C++ Applications Programming Services .NET Platform Code Source code compiles as MSIL JIT compiler produces machine language One-stop Application Development Visual Studio .NET Design Develop Debug Deploy Data Access XML Web Services Tools Windows Forms Tools Web Forms Tools Error Handling Multiple Languages Các đặc điểm của Visual Studio .NET Hổ trợ lập trình đa ngôn ngữ. Độc lập với hệ điều hành (Platform ). Xây dựng ứng dụng nhanh chóng và dễ dàng. Hổ trợ xây dựng ứng dụng cho nhiều thiết bị . Môi trường thiết kế trực quan . Hướng đến các ứng dụng trên Internet (Webservice, WAP) Microsoft Intermediate Language (MSIL) Common Language Specification VB C++ C# JScript J# Common Language Runtime (CLR) Just In-Time Compiler (JIT) Operating System MSIL, JIT và CLR Thực thi một chương trình .Net C# Code C# Compiler Visual Basic Code VisualBasic Compiler COBOL Code COBOL Compiler IL JIT Compiler Native Code .NET source code L a n g u a g e C o m p il e r MSIL + Metadata Machine code Code executedC L R 1st Compilation 2nd Compilation Thực thi các chương trình .NET Microsoft Intermediate Language .NET source code L a n g u a g e C o m p il e r MSIL + Metadata Machine code Code executedC L RSIL Helps Language interoperability IL is not bytecode, but is very close to it. Therefore, when the application is executed, the IL to machine code conversion is quick! MSIL converted to CPU-specific code by CLR CPU-independent set of instructions .NET source code L a n g u a g e C o m p il e r MSIL + Metadat a Machine code Code executedC L RCLR Manages memory Makes it easy to design components & applications whose objects interact across languages Cross-language integration (especially cross- language inheritance) Compile once, and run on any CPU & OS that supports the runtime! Visual C#.Net và các khái niệm cơ bản  Được phát triển bởi Microsoft do nhóm Anders Hejlsberg và Scott Wiltamuth sáng tác.  Ngôn ngữ lập trình trực quan, hướng sự kiện, hướng đối tượng.  Dựa theo ý tưởng các ngôn ngữ khác : C,C++, Java và Visual Basic.  Hổ trợ đầy đủ bởi .Net Platform.  Compiler hiệu quả nhất trong .Net family.  Khả năng thay thế cho C++.  Hạn chế sử dụng con trỏ. Chương trình C# using System; class SampleCSharp { static void Main(string[] args) { Console.WriteLine("Hello world"); } } Các kiểu dữ liệu trong C#  Các kiểu dữ liệu đơn giản : int, float, string , char, bool..  Các kiểu dữ liệu tham chiếu : đối tượng, lớp.  Các bổ từ khi sử dụng với biến : private, public, protected  Các kiểu dữ liệu khác : Array, Struct, Enum...  Giá trị mặc định cho các kiểu dữ liệu : Nhập và xuất trong C#  Sử dụng các phương thức của lớp Console trong namspace System.  Console.WriteLine()  Console.Write()  Console.ReadLine()  Console.Read () Ví dụ : using System; class SampleCSharp { static void Main(string[] args) { //Nhập vào 1 chuổi string s = Console.ReadLine(); //Nhập vào số nguyên int n = int.Parse(Console.ReadLine()); //In ra mà hình Console.WriteLine("s = {0} va n = {1}",s,i); } } Cấu trúc If  Cú pháp : if (biểu thức ) { //Các câu lệnh } else { //Cá câu lệnh } Lập trình trên Windows với Microsoft® .NET Giảng viên : Hồ Hoàn Kiếm Lập trình hướng đối trượng trong C#  Namespace, Lớp và Đối tượng.  Các thành phần của Lớp , Đối tượng.  Constructors và Destructors .  Nạp chồng phương thức (Overloading).  Các phương thức chồng toán tử ( Operator Overloading ).  Viết lại các thành phần của lớp (Overriding)  Kế thừa (Inheritance). Namespace .  Tránh sự trùng lắp khi đặt tên lớp.  Quản lý mã được dễ dàng.  Giảm bớt sự phức tạp khi chạy với các ứng dụng khác namespace Tên_Namespace { //Khai báo các lớp }  Có thể khai báo các namespace, class,bên trong namespace khác. Namespace  Ví dụ 1 : namespace Sample { public class A { } public class B { } } Namespace  Ví dụ 2 : namespace Sample_2 { public class A { } namspace Sample_3 { //. } } Lớp và Đối tượng  Khai báo : class Tên_lớp { //khai báo các thành phần }  Ví dụ : class KhachHang { private int mMaKhachHang; private string mTenKhachHang; } Lớp và Đối tượng  class KhachHang { //Các thành phần //Các phương thức public void In() { //Các câu lệnh } } Các thành phần trong Lớp  Thành phần của lớp - khai báo với từ khóa static. class KhachHang { private static int mMaKH; public static string mTenKH; public static void In() { // Các câu lệnh } }  Sử dụng : TênLớp.TênThànhPhần  ví dụ : KhachHang.mTenKH = 1; KhachHang.In() ; Các thành phần trong Lớp  Thành phần của đối tượng : class KhachHang { private int mMaKH; public string mTenKH; public void In() { // Các câu lệnh } }  Sử dụng : TênĐốiTượng.TênThànhPhần  ví dụ : KhachHang objKH = new KhachHang() objKH .In() ; objKH.mTenKH = “ABC”; Constructors trong C#  Phương thức đặc biệt trong lớp.  Được gọi khi đối tượng được tạo.  Dùng để khởi dựng đối tượng.  Cùng tên với tên lớp .  Không có giá trị trả về. Constructors trong C#  class KhachHang { private int mMaKH; private string mTenKH; public KhachHang() { mKH = 0; mTenKH = “ABC”; } }  Constructor có thể có tham số . Constructors trong C#  class KhachHang { private int mMaKH; private string mTenKH; public KhachHang() { mKH = 0; mTenKH = “ABC”; } public KhachHang(int MaKH, string TenKH) { mKH = MaKH; mTenKH = TenKH; } } Static Constructor  Gọi một lần duy nhất trước khi đối tượng được tạo .  Không có tham số .  class KhachHang { public KhachHang() { mKH = 0; mTenKH = “ABC”; } static KhachHang() { // Các câu lệnh } } Private Constructor  Sử dụng khi các thành phần trong lớp là static .  Không cần thiết tạo đối tượng cho lớp.  class KhachHang { private static int mMaKH; public static string mTenKH; public static void In() { // Các câu lệnh } private KhachHang() { } } Destructors trong C#  Được gọi bởi Garbage Collector .  Được gọi tự động khi đối tượng được hủy. class KhachHang { public KhachHang() { mKH = 0; mTenKH = “ABC”; } ~KhachHang() { // Các câu lệnh } } Overloading Methods .  Các phương thức có cùng tên , khác danh sách tham số hoặc kiểu tham số . public void In() { // Các câu lệnh } public void In(string s) { // Các câu lệnh } public void In(int s) { // Các câu lệnh } Lập trình trên Windows với Microsoft® .NET Giảng viên : Hồ Hoàn Kiếm Lập trình hướng đối trượng trong C#  Namespace, Lớp và Đối tượng.  Các thành phần của Lớp , Đối tượng.  Constructors và Destructors .  Nạp chồng phương thức (Overloading).  Các phương thức chồng toán tử ( Operator Overloading ).  Viết lại các thành phần của lớp (Overriding)  Kế thừa (Inheritance). Namespace .  Tránh sự trùng lắp khi đặt tên lớp.  Quản lý mã được dễ dàng.  Giảm bớt sự phức tạp khi chạy với các ứng dụng khác namespace Tên_Namespace { //Khai báo các lớp }  Có thể khai báo các namespace, class,bên trong namespace khác. Namespace  Ví dụ 1 : namespace Sample { public class A { } public class B { } } Namespace  Ví dụ 2 : namespace Sample_2 { public class A { } namspace Sample_3 { //. } } Lớp và Đối tượng  Khai báo : class Tên_lớp { //khai báo các thành phần }  Ví dụ : class KhachHang { private int mMaKhachHang; private string mTenKhachHang; } Lớp và Đối tượng  class KhachHang { //Các thành phần //Các phương thức public void In() { //Các câu lệnh } } Các thành phần trong Lớp  Thành phần của lớp - khai báo với từ khóa static. class KhachHang { private static int mMaKH; public static string mTenKH; public static void In() { // Các câu lệnh } }  Sử dụng : TênLớp.TênThànhPhần  ví dụ : KhachHang.mTenKH = 1; KhachHang.In() ; Các thành phần trong Lớp  Thành phần của đối tượng : class KhachHang { private int mMaKH; public string mTenKH; public void In() { // Các câu lệnh } }  Sử dụng : TênĐốiTượng.TênThànhPhần  ví dụ : KhachHang objKH = new KhachHang() objKH .In() ; objKH.mTenKH = “ABC”; Constructors trong C#  Phương thức đặc biệt trong lớp.  Được gọi khi đối tượng được tạo.  Dùng để khởi dựng đối tượng.  Cùng tên với tên lớp .  Không có giá trị trả về. Constructors trong C#  class KhachHang { private int mMaKH; private string mTenKH; public KhachHang() { mKH = 0; mTenKH = “ABC”; } }  Constructor có thể có tham số . Constructors trong C#  class KhachHang { private int mMaKH; private string mTenKH; public KhachHang() { mKH = 0; mTenKH = “ABC”; } public KhachHang(int MaKH, string TenKH) { mKH = MaKH; mTenKH = TenKH; } } Static Constructor  Gọi một lần duy nhất trước khi đối tượng được tạo .  Không có tham số .  class KhachHang { public KhachHang() { mKH = 0; mTenKH = “ABC”; } static KhachHang() { // Các câu lệnh } } Private Constructor  Sử dụng khi các thành phần trong lớp là static .  Không cần thiết tạo đối tượng cho lớp.  class KhachHang { private static int mMaKH; public static string mTenKH; public static void In() { // Các câu lệnh } private KhachHang() { } } Destructors trong C#  Được gọi bởi Garbage Collector .  Được gọi tự động khi đối tượng được hủy. class KhachHang { public KhachHang() { mKH = 0; mTenKH = “ABC”; } ~KhachHang() { // Các câu lệnh } } Overloading Methods .  Các phương thức có cùng tên , khác danh sách tham số hoặc kiểu tham số . public void In() { // Các câu lệnh } public void In(string s) { // Các câu lệnh } public void In(int s) { // Các câu lệnh } Lập trình trên Windows với Microsoft® .NET Giảng viên : Hồ Hoàn Kiếm Overloading Methods Áp dụng cho các toán tử : Overloading Methods public class Point { public int m_x; public int m_y; public Point (){ } public Point(int xx,int yy) { m_x = xx ; m_y = yy; } public static Point operator + (Point p1,Point p2) { Point result = new Point(); result.m_x = p1.m_x + p2.m_y; result.m_y = p1.m_x + p2.m_y; return result; } } Overloading Methods static void Main(string[] args) { Point objP1 = new Point(1,1); Point objP2 = new Point(2,2); Point objResult = new Point(); objResult = objP1 + objP2; Console.WriteLine("The result is m_x = {0} and m_y = {1}", objResult.m_x , objResult.m_y); } Kiểu Structs  Kiểu dữ liệu do người dùng định nghĩa.  Có thể định nghĩa các phương thức.  Có thể định nghĩa các Constructors  Structs là kiểu tham trị .  Structs không được kế thừa . Kiểu Structs public struct Point { public int x, y; public Point(int p1, int p2) { x = p1; y = p2; } public int Add() { return x+y; } } Kiểu Structs static void Main(string[] args) { Point p1 = new Point() ; Point p2 = new Point(10,10); Console.Write(" Point 1: "); Console.WriteLine("x = {0}, y = {1}", p1.x, p1.y); Console.Write(" Point 2: "); Console.WriteLine("x = {0}, y = {1}", p2.x, p2.y); Console.WriteLine("Call Add method: {0}",p2.Add()); Console.ReadLine(); } Kiểu Enumrator  Tập hợp các hằng số đã được đặt tên. enum Days { //mac dinh Phan tu dau tien bat tu 0 Sat, Sun, Mon, Tue, Wed, Thu, Fri }; Kiểu Enumrator public static void Main() { int x = (int) Days.Sun; int y = (int) Days.Fri; Console.WriteLine("Sun = {0} : Value : {1}", x,Days.Sun); Console.WriteLine("Fri = {0} : Value : {1}", y,Days.Fri ); }  Kết quả : Sun = 2 : Value : Sun Fri = 7 : Value : Fri Properties  Sử dụng để truy cập các thành phần Private.  Kiềm tra dữ liệu cho các thành phần trong lớp . public class Square { public double mSide; } public class Test { static void Main() { Square obj = new Square (); obj. mSide = 3; } } Properties public class Square { //Khi báo các thành phần private double mSide; // Khai báo property public double Side { get { }; set { }; } // Khai báo các phương thức } Properties  Property giống như field, nhưng việc truy cập đươc thực hiện qua thao tác get và set . public int Side { get { return mSide; } set { if (mSide < 0) return ; mSide = value; } } Properties namespace SampleProperty { public class Rectangle { private int m_Length ; private int m_Width ; private int m_Area ; public Rectangle() { m_Length = 3; // Length = 3; m_Width = 2; } Properties public int Length { get { return m_Length; } set { if(m_Length < 0 ) return; m_length = value; } } Properties public int Width { get { return m_Width; } set { // Đọan mã kiểm tra giá trị .. m_Width = value; } } Properties public int Area { get { return m_Area; } } public void CalArea() { m_Area = m_Length*m_Width; } Properties public class Test { public static void Main() { Rectangle objRectangle = new Rectangle(); objRectangle. Length = 3; objRectangle. Width = 4; objRectangle.CalArea(); Console.WriteLine("{0}", objRectangle. Area ); } } Indexer  Khi thành phần của lớp là các kiểu tập hợp.  Sử dụng với : new, virtual, sealed, override, abstract, extern.  Indexer giống như Property, đuợc truy cập thông qua get và set  Khai báo sử dụng từ khóa this.  Khi sử dụng Indexer ta sử dụng dấu [] cho get và set . Indexer class IndexerClass { private int [] myArray = new int[100]; public int this [int index] { get { If (index = 100) return 0; else return myArray[index]; } set { if (!(index = 100)) myArray[index] = value; } } } Indexer public class Test { public static void Main() { IndexerClass b = new IndexerClass(); b[3] = 256; b[5] = 1024; for (int i=0; i<=10; i++) { Console.WriteLine("Element # {0} = {1}", i, b[i]); } } } Lập trình trên Windows với Microsoft® .NET Giảng viên : Hồ Hoàn Kiếm Kế thừa trong C#  Cho phép khai báo 1 lớp mới được dẫn xuất từ 1 lớp đã có.  Sử dụng lại các đọan mã đã viết .  Hổ trợ đơn thừa kế.  Không cho phép đa thừa kế.  Cho phép thực thi nhiều interface Kế thừa trong C# class Software { private int m_z; public int m_v; protected int m_x; public Software() { m_x = 100; } public Software(int y) { m_x = y; } } Kế thừa trong C# class MicrosoftSoftware : Software { public MicrosoftSoftware() { Console.WriteLine(m_x); } } Kế thừa trong C# class IBMSoftware : Software { public IBMSoftware(int y) : base(y) { Console.WriteLine(m_x); } public IBMSoftware(string s, int f) : this(f) { Console.WriteLine(s); } } Kế thừa trong C# static void Main(string[] args) { MicrosoftSoftware objMS = new MicrosoftSoftware(); IBMSoftware objIBM1 = new IBMSoftware(50); IBMSoftware objIBM2 = new IBMSoftware("test",75); Console.ReadLine(); } Kế thừa trong C#  Từ khóa sealed : Lớp không cho phép kế thừa public sealed class A { } public class B : A { }  Lớp B không được phép kế thừa lớp A . Overriding Method class Animal { public Animal() { Console.WriteLine("Animal constructor"); } public void Talk() { Console.WriteLine("Animal talk"); } } Overriding Method class Dog : Animal { public Dog() { Console.WriteLine("Dog constructor"); } public new void Talk() { Console.WriteLine("Dog talk"); } } Overriding Method class Test { static void Main(string[] args) { Animal a1 = new Animal(); a1.Talk(); Dog d1 = new Dog(); d1.Talk(); } } Tính đa hình - Polymorphism class Animal { public Animal() { Console.WriteLine("Animal constructor"); } public virtual void Talk() { Console.WriteLine("Animal talk"); } } Tính đa hình - Polymorphism class Dog : Animal { public Dog() { Console.WriteLine("Dog constructor"); } public override void Talk() { Console.WriteLine("Dog talk"); } } Tính đa hình - Polymorphism class Test { static void Main(string[] args) { Animal objA = new Animal(); Dog objD = new Dog(); objA = objD ; objA.Talk(); } } Lớp trừu tượng – Abstract Class  Không được tạo đối tượng.  Có thể định nghĩa các phương thức.  Có thể mở rộng từ lớp dẫn xuất.  Dùng để làm lớp cơ sở.  Có thể thực thi interface Lớp trừu tượng – Abstract Class abstract class Shape { // Khai cac field protected float m_Height = 5; protected float m_Width = 10; //Khai bao cac method public abstract void CalculateArea(); public abstract void CalculateCircumference(); public void PrintHeight(){ Console.WriteLine("Height = {0}",m_Height); } public void PrintWidth() { Console.WriteLine("Width = {0}",m_Width); } } Lớp trừu tượng – Abstract Class class Rectangle:Shape { public Rectangle( { m_Height = 20; m_Width = 30; } public override void CalculateArea() { Console.WriteLine("Area : {0}",m_Height * m_Width ); } public override void CalculateCircumference() { Console.WriteLine("Circumference = {0}",(m_Height+m_Width)*2); } } Lớp trừu tượng – Abstract Class class Test { static void Main(string[] args) { Rectangle objRec = new Rectangle(); objRec.CalculateArea(); objRec.CalculateCircumference(); } } Giao diện – Interface  Không được tạo đối tượng.  Không thể định nghĩa các phương thức.  Lớp thực thi interface phải thực thi tất cả các phương thức của interface.  Interface có thể được kế thừa các interface khác. Giao diện – Interface interface ITest { void Print(); } class Base:ITest { public void Print() { Console.WriteLine("Print method called"); } } Giao diện – Interface static void Main(string[] args) { Base obj = new Base(); obj.Print(); //Gọi phương thức Print() bằng interface ITest ITest ib = (ITest)obj ; ib.Print(); //Gọi phuong thức Print() bằng cách ép kiểu Interface ITest về lớp Base Base ojB = (Base)ib; ojB.Print(); } Lập trình trên Windows với Microsoft® .NET Giảng viên : Hồ Hoàn Kiếm Lập trình với Winform User Interface Program Lập trình với Winform  Sử dụng System.Windows.Forms  Dùng chung giao diện với các ứng dụng khác .  Dựa trên nền tảng lập trình hướng đối tượng.  Giao diện winform được kế thừa từ lớp Form  Form gồm nhiều đối tượng Visual Inrterface Component ( gọi là Controls ) Events và EventHandler Tương tác giữa các đối tượng với ứng dụng. Event Handling When Save Clicked() { Display Message(“Save Button”); } Event Event Handler Các control cơ bản  Label  TextBox  Button  ListBox  ComboBox  CheckedListBox Các control cơ bản PROPERTIES Image TabStop Paint Events Methods Label Các control cơ bản PROPERTIES Events Methods MaxLength Multiline Passwordchar ReadOnly Copy Cut TextChanged TextBox Các control cơ bản PROPERTIES Events Methods DialogResult TextAlign Button Các control cơ bản PROPERTIES Items MultiColumn SelectedIndex SelectedItem SelectedItems SelectedValue Sorted Text ListBox [1] Các control cơ bản Events Methods ClearSelected FindString GetSelected SetSelected SelectedIndexChanged SelectedValueChanged ListBox [2] Các control cơ bản PROPERTIES Events Methods CheckedIndices CheckedItems GetItemChecked GetItemCheckState SetItemChecked SetItemCheckState ItemCheck CheckedListBox Các control cơ bản PROPERTIES Events Methods DropDownStyle Focused MaxDropDownItems Select SelectAll DropDown ComboBox Giao diện Từ khóa this  Sử dụng để truy cập các thành phần trong form hiện hành . this.ControlName.PropertyName this.ControlName.MethodName this.ControlName.EventName Lập trình trên Windows với Microsoft® .NET Giảng viên : Hồ Hoàn Kiếm Sử dụng controls trong C# PrintDocument PrintPreviewControl Printing Support Controls Sử dụng controls trong C# PROPERTIES AutoZoom Columns Document Rows StartPage UseAntiAlias Zoom InvalidatePreview PrintPreviewControl Sử dụng controls trong C# Dialog Boxes Uses Types (by Presentation) To display information and messages for the user As a means of accepting user-input Sử dụng controls trong C# Dialog Types Types of Dialog (by definition) •OpenFileDialog •PageSetUpDialog •FontDialog •ColorDialog •SaveFileDialog •PrintPreviewDialog •PrintDialog Custom dialog boxes Common dialog boxes Sử dụng controls trong C# PROPERTIES CheckFileExists DefaultExt FileName FileNames Filter InitialDirectory MutiSelect ReadOnlyChecked RestoreDirectoryShowHelp ShowReadOnly OpenFileDialog Sử dụng controls trong C# PROPERTIES AllowVectorFonts AllowVerticalFonts Color Font MaxSizeMinSize ShowColor ShowEffects ShowHelp FontDialog Sử dụng controls trong C# AllFullOpen AnyColor Color CustonColors FullOpen ShowHelpSolidColorOnly PROPERTIES ColorDialog Sử dụng controls trong C# PROPERTIES CreatePrompt OverwritePrompt OpenFile SaveFileDialog Sử dụng controls trong C# MessageBox [1]  MessageBox Code for showing Messagebox: MessageBox.Show(“[Message]”);  MessageBox method is overloaded in twelve more ways to give more functionality Sử dụng controls trong C# MessageBox [2] •MessageBoxButtons •MessageBoxIcon •MessageBoxDefaultButton •MessageBoxOptions Sử dụng controls trong C# MessageBoxButton Member Name AbortRetryIgnore OK OKCancel RetryCancel YesNo YesNoCancel Sử dụng controls trong C# MessageBoxIcon Member Name Member Name Asterisk Question Error Stop Exclamation Warning Hand Information None Sử dụng controls trong C# MessageBoxOptions Member Name DefaultDesktopOnly RightAlign RtlReading ServiceNotification Sử dụng controls trong C# MessageBoxDefaultButton Member Name Button1 Button2 Button3 Sử dụng controls trong C# Visual Effects in WinForms Transparent Forms Control Docking Control Anchoring Visual Inheritance Sử dụng controls trong C# Transparent Forms this.Opacity = 0.83; Sử dụng controls trong C# Control Anchoring Control Anchored Control not Anchored Sử dụng controls trong C# Visual Inheritance Creates a base Form Used at various places Allows changes to be made in the inherited form Lập trình trên Windows với Microsoft® .NET Giảng viên : Hồ Hoàn Kiếm SDI Application SDI (1) New Document An SDI application can have only one active window at a time MDI Application MDI (2) Inner Window (or) Child Window Outer Window (or) Parent Window MDI Application Designing an MDI application IsMdiContainer = true MDI Application Activating and Deactivating Windows Deactivate child window Active child window MDI Application As in MDI form during design As with the control at runtime Main Menu  Displays a menu at runtime  MainMenu can be created in two ways: Using the MainMenu control, and menu designer at design time Creating an instance of the MainMenu class at runtime MainMenu myMainMenu = new MainMenu(); this.Menu = myMainMenu; Main Menu PROPERTIES EVENTS METHODS Index ShowShortCut MenuItems Context Menu  Context menus give users access to frequently used commands by clicking the right mouse button  Context menus are created with the help of the ContextMenu control ToolBar  It is situated immediately below the menu bar  The buttons in a ToolBar are analogous to the items in a menu  Different button appearance options: • DropDownButton • Separator • ToggleButton ToolBar control icon as in ToolBox Form Level and Control Level Validations Validate data in all the fields in the form Enable and Disable controls based on user input KeyPress KeyDown KeyUp Errors Description Syntax Error Occurs when we enter an incorrect line of code such as a mistake in typing a keyword, missing punctuation, or an incorrectly specified variable. Run-time Error Occurs when a command attempts to perform an invalid action. Logic Error Occurs when an application executes without syntax errors or run-time errors, but the results are not which were intended. Types of Errors ErrorProvider Control Properties Methods BlinkRate GetError BlinkStyle SetError ContainerControl Icon ErrorProvider control can be used to display an error icon when the user enters invalid data. Exception Handling Exceptions can be handled with the help of : Lập trình cơ sở dữ liệu với ADO.Net Giảng viên : Hồ Hoàn Kiếm Lập trình cơ sở dữ liệu Stored into Database Client ADO.net Data access technology Lập trình cơ sở dữ liệu Client-Server Application Client Server Provides data to client C lie n t S o ft w a re D a ta b a se Lập trình cơ sở dữ liệu Data Access Components Database User Server Running Database Database Requests data Sends data Server DownClient Software Requests data Error Message DAC (ODBC, OLE DB, ADO, ADO.net) Giới thiệu về ADO.Net Hổ trợ bởi .Net Platform Sử dụng công nghệ XML để chuyển đổi dữ liệu. Tương tác vói tất cả các lọai cơ sở dữ liệu. Khả năng thực thi nhanh . Sử dụng cho các lọai ứng dụng client-server . Giới thiệu về ADO.Net ADO.net architecture Database XML XML Connection A D O A D O .N E T Command Recordset XxxConnection XxxCommand DataSet XxxTransaction XxxDataReader XxxDataAdapter Mô hình chuyển đổi giữa ADO và ADO.NET Các loại .NET Data Provider  XxxConnection – for example, SqlConnection  XxxTransaction – for example, SqlTransaction  XxxException – for example, SqlException  XxxError – for example, SqlError  XxxCommand – for example, SqlCommand  XxxParameter – for example, SqlParameter  XxxDataReader – for example, SqlDataReader  XxxDataAdapter – for example, SqlDataAdapter DataSet SQL Server .NET Data Provider OLE DB .NET Data Provider SQL Server 7.0 (and later) OLEDB sources (SQL Server 6.5) Mô hình ADO .NET Object Connected và Disconnected trong ADO.NET SqlConnection SqlDataAdapter DataSet SQL Server 7.0 (and later) SQL Server 7.0 (and later) SqlConnection SqlCommand SqlDataReader ADO.NET and XML  ADO.NET is tightly integrated with XML  Using XML in a disconnected ADO.NET application XML Web Services DataSet Request data 1 SQL query 2 Results 3XML4 Updated XML5 SQL updates6 Data SourceClient DataSet Lập trình trên Windows với Microsoft® .NET Giảng viên : Hồ Hoàn Kiếm SqlDataAdapter  Bộ lọc dữ liệu.  Phân trang dữ liệu.  Phương thức fill(datasource); fill(datasource,start,number,”tablename”) SqlCommand  Thực thi câu lệnh SQL.  Phương thức : ExecuteNonQuery() ExecuteScala() ExecuteReader() DataSet  Chứa dữ liệu trả về từ DataAdapter.  “Cơ sở dữ liệu thu nhỏ”.  Gồm các đối tượng : - DataTable - DataRelation DataSet  Mô hình DataSet DataTable  Chứa dữ liệu trả về DataSet hoặc DataAdapter.  Gồm các đối tượng : - DataColumn - DataRow Create a DataTable  myTable.Columns.Add("ItemID",Type.GetType("System.Int 32"));  myTable.Columns.Add("ItemName",Type.GetType("Syste m.String"));  myTable.Columns.Add("Quantity",Type.GetType("System.I nt32"));  myTable.Columns.Add("Quantity",Type.GetType("System.fl oat"));  // thêm column mới vào table  myTable.Columns.Add(myColumn);  myTable.Columns.Add("SubTotal",Type.GetType("System.I nt32"),"Quantity*Price");  myTable.PrimaryKey = new DataColumn[]{myTable.Columns[0]}; Insert data into DataTable  // Thêm 10 dòng vào Table  DataRow myRow;  for(int i = 0; i < 10; i++)  {  myRow = myTable.NewRow();  myRow["ItemID"] = i + 1;  myRow["Price"] = i*2+1;  myRow["ItemName"] = (60+i);  myRow["Quantity"] = i + 1;  myTable.Rows.Add(myRow);  } DataView  Dùng để quản lý và thao tác dữ liệu trong DataTable  Dùng để lọc , sắp xếp dữ liệu trong DataTable DataView DataBinding  Hiển thị dữ liệu trong DataTablevào các control ( TextBox, ComboBox, DataGrid)  Gồm 2 loại chính : - Binding Sample - Binding Complex

Các file đính kèm theo tài liệu này:

  • pdftailieu.pdf
Tài liệu liên quan