Tải bản đầy đủ (.doc) (37 trang)

TỔNG HỢP LÝ THUYẾT C# pdf

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (266.94 KB, 37 trang )

Các đặc trưng chính của C# Basic Features of C#
• Được phát triển bởi MS đạt chuẩn ECMA(European Computer
Manufacturers Association)
• Là n.ngữ HĐT,hướng sự kiện, trực quan
• Dựa theo ý tưởng của các ngôn ngữ C, C++, Java, VB
• Hỗ trợ đầy đủ bởi .net framework
• Là ngôn ngữ đơn giản(hạn chế con trỏ, không có cslớp ảo, đa thừa kế), hiệu
quả, module hóa, mạnh và sẽ là ngôn ngữ phổ dụng
Viết và chạy một ứng dụng đầu tiên trên console
1. Tạo 1 project mới
2. Dịch chương trình
Có thể dịch bằng lệnh hoặc dùng IDE
Nếu dịnh bằng lệnh thì đổi đường dẫn như sau
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727;
Và gõ: csc <fileName.cs>
Nếu dùng IDE thì ấn F6 để dịch chương trình
3. Chạy chương trình run program
Nếu dùng command line thì gõ tên tệp chạy .exe
Nếu dùng IDE, ấn Ctrl + F5
Một số khái niệm cơ bản trong C#
1. Kiểu dữ liệu Data Types
Kiểu dữ liệu của C# đc chia thành 2 loại:
a. Giá trị Value :
i. Có thể là kiểu chuẩn hoặc kiểu dữ liệu do người dùng định nghĩa.
ii. Kiểu giá trị chứa trong stack cho kết quả nhanh hơn
b. Kiểu tham chiếu Reference types:
i. Biến tham chiếu được lưu trữ trong heap.
ii. Tất cả cách kiểu dữ liệu người dùng tự định nghĩa chẳng hạn như
kiểu lớp thì đều là kiểu tham chiếu.
Kiểu dữ liệu chuẩn:
 Mỗi một kiểu dữ liệu thì đều liên quan đến tập giá trị mà nó chứa và các


phép toán trên kiểu đó.
 Cần lựa chọn kiểu để lưu trữ cho phù hợp với mục đích sử dụng
Kiểu tham chiếu:
2. Từ khóa
3. Nhập xuất
Xuất : Console.Write() và Console.WriteLine()
2 phương thức này có thể chứa tham số là các ký tự định dạng dữ liệu hiển thị
a. Console.Write(“Customer name: {0}”, custName);
b. Console.WriteLine(“Total amount: ${0:#,###.#0}”, totalAmount);
Nhập: Console.Read() and Console.ReadLine()
custName = Console.ReadLine();
4. Chuyển đổi dữ liệu
Phương thức ReadLine() có thể được sử dụng để nhập các giá trị trừ giá trị
nguyên.
Dữ liệu nhập là chuôi và được chuyển đổi thành kiểu dữ liệu khác bởi lớp
Convert
Age = Convert.ToInt32(Console.ReadLine());
5. Kí tự đặc tả
Là ký tự đặc biệt để hiển thọ giá trị của biến.
• Một số loại đặc tả
– Đặc tả dạng số: d,c,e,f,n,x
– Đặc tả dạng ngày tháng: d,D, f, F,g, m, t, T,y
Ví dụ:
-DateTime today = DateTime.Now;
-Console.WriteLine("short date: {0:d} ", today);
-Console.WriteLine("long date: {0:D} ",today);
-Console.WriteLine("full date with time: {0:f} ",today);
-Console.WriteLine("fulll date with time with second: {0:F} ",today);
Lệnh Checked and Unchecked
Kiểm tra một biểu thức toán học có bị tràn hay không.

byte numOne = 255;
byte numTwo = 1;
byte result = 0;
try {
// This code throws an overflow exception
checked {
result = (byte)(numOne + numTwo);
}
Console.WriteLine("Result: " + result);
} catch(OverflowException ex) {
Console.WriteLine(ex);
}
6. Chuyển đổi kiểu
Kiểu chứa giá trị lớn hơn có thể gán cho kiểu chứa giá trị nhỏ hơn
Ngược lại có thể dùng lệnh ép kiểu
Có thể dùng lớp Convert: tostring, toint32,
a. (kiểu) biến;
Ví dụ:
int i = 56;
float f = 3.14159f;
f = i; //ep kieu ngam dinh (khong tuong minh) implicit
i = (int)f;//se bi loi neu ban viet int(f) ep kieu tuong minh
7. Boxing và Unboxing
- Sử dụng Boxing và Unboxing để chuyển đổi bất cứ 1 kiểu giá trị nào sang
kiểu tham chiếu hay kiểu tương đương.
- Khi 1 giá trị được boxing thì giá trị đó sẽ được copy sang 1 một đối tượng.
- Đối tượng mới được lưu trữ trong heap
Boxing:
• object o = i;
• object o = (object)i;

Unboxing:
• int i = (int)o;
• int i = 56;Object obj;
• i = i * 200 - 10;
• obj = i;//boxing
• Console.WriteLine(obj);
• int j = (int)obj;//unboxing
8. Lớp array
Lớp Array là lớp cơ sở của C# danh cho tất cả các loại mảng.
Nó cung cấp các phương thức để thực hiện các chức năng khác nhau như tạo
mảng, tìm kiếm, copy và sắp xếp mảng
Các thuộc tính của lớp Array:
• Length: số phần tử của mảng kiểu int32
• LongLength:int64
• Rank: là một số nguyên chứa số chiều trong mảng
• IsReadOnly, IsFixedSize
Các phương thức của lớp Array:
• Clear: xóa các phần tử của mảng, đặt kích thước của mảng là 0.
• GetLength, Initialize, SetValue, GetValue, Sort, Copyto,…
Ví dụ về lớp Array:
Array a = Array.CreateInstance(typeof(int),3);
a.SetValue(123, 0);
a.SetValue(123, 1);
a.SetValue(3, 2);
for (int i = 0; i < a.Length; i++)
Console.WriteLine(a.GetValue(i));
9. Lớp
Dùng để định nghĩa một thực thể bao gồm thuộc tính và hành động
PhanSo
int ts,ms

Nhap, Xuat, ToiGian,
Cong, Tru,…
10. Đối tượng
Là một thể hiện của lớp
½ là một thể hiện của lớp phân số
1 đối tượng có
- Thuộc tính: Đặc điểm mô tả đối tượng
- Phương thức: Mô tả một hành động khi được yêu cầu sẽ tiến hành như thế
nào
11. Lớp và đối tượng
- Lớp để định nghĩa một thực thể, còn đối tượng là một thể hiện của thực thể
- Lớp là 1 khái niệm mà chỉ ra tất cả các đặc điểm và hành động của một đối
tượng, còn đối tượng là một cái có thật
- Tất cả đối tượng thuộc về 1 lớp có cùng đặc điểm và hành động.
- Lớp kiểu dữ liệu mà 1 đối tượng nào đó thuộc vào.
12. Các chức năng chính của OOP(lập trình hướng
đối tượng)
• Tính trừu tượng (abstraction): Đây là khả năng của chương trình bỏ qua
hay không chú ý đến một số khía cạnh của thông tin mà nó đang trực tiếp
làm việc lên, nghĩa là nó có khả năng tập trung vào những cốt lõi cần thiết.
Mỗi đối tượng phục vụ như là một "động tử" có thể hoàn tất các công việc
một cách nội bộ, báo cáo, thay đổi trạng thái của nó và liên lạc với các đối
tượng khác mà không cần cho biết làm cách nào đối tượng tiến hành được
các thao tác. Tính chất này thường được gọi là sự trừu tượng của dữ liệu.
Tính trừu tượng còn thể hiện qua việc một đối tượng ban đầu có thể có một
số đặc điểm chung cho nhiều đối tượng khác như là sự mở rộng của nó
nhưng bản thân đối tượng ban đầu này có thể không có các biện pháp thi
hành. Tính trừu tượng này thường được xác định trong khái niệm gọi là lớp
trừu tượng hay lớp cơ sở trừu tượng.
• Tính đóng gói (encapsulation) và che giấu thông tin (information hiding):

Tính chất này không cho phép người sử dụng các đối tượng thay đổi trạng
thái nội tại của một đối tượng. Chỉ có các phương thức nội tại của đối tượng
cho phép thay đổi trạng thái của nó. Việc cho phép môi trường bên ngoài tác
động lên các dữ liệu nội tại của một đối tượng theo cách nào là hoàn toàn tùy
thuộc vào người viết mã. Đây là tính chất đảm bảo sự toàn vẹn của đối
tượng.
• Tính đa hình (polymorphism): Thể hiện thông qua việc gửi các thông điệp
(message). Việc gửi các thông điệp này có thể so sánh như việc gọi các hàm
bên trong của một đối tượng. Các phương thức dùng trả lời cho một thông
điệp sẽ tùy theo đối tượng mà thông điệp đó được gửi tới sẽ có phản ứng
khác nhau. Người lập trình có thể định nghĩa một đặc tính (chẳng hạn thông
qua tên của các phương thức) cho một loạt các đối tượng gần nhau nhưng
khi thi hành thì dùng cùng một tên gọi mà sự thi hành của mỗi đối tượng sẽ
tự động xảy ra tương ứng theo đặc tính của từng đối tượng mà không bị
nhầm lẫn.
Thí dụ khi định nghĩa hai đối tượng "hinh_vuong" và "hinh_tron" thì có một
phương thức chung là "chu_vi". Khi gọi phương thức này thì nếu đối tượng
là "hinh_vuong" nó sẽ tính theo công thức khác với khi đối tượng là
"hinh_tron".
• Tính kế thừa (inheritance): Đặc tính này cho phép một đối tượng có thể có
sẵn các đặc tính mà đối tượng khác đã có thông qua kế thừa. Điều này cho
phép các đối tượng chia sẻ hay mở rộng các đặc tính sẵn có mà không phải
tiến hành định nghĩa lại. Tuy nhiên, không phải ngôn ngữ định hướng đối
tượng nào cũng có tính chất này.
Phạm vi truy xuất:
• Public
• Protected
• Private
• Internal
13. Hàm tạo

- Là một loại phương thức đặc biệt của lớp
- Được gọi mỗi khi 1 đối tượng mới được tạo ra
- Nó đc dùng để khởi tạo đối tượng
- Có cùng tên với lớp
- Không có giá trị trả về
14. Thành viên tĩnh
- Được xem như một phần tử lớp. Có thể truy xuất đến thành viên tĩnh thông
qua tên lớp.
- Trong 1 số ngôn ngữ chúng ta khai báo biến, hàm toàn cục không lệ thuộc
vào lớp nào nhưng trong C# là k hợp lệ, nó sẽ là thành viên tĩnh của lớp
- Gọi 1 phương thức tĩnh không cần qua 1 đối tượng, nó tốt hơn phương
thức toàn cục vì nó được gói vào 1 namespace, trách sự lộn xộn trong cách
đặt tên
- Trong phương thức tĩnh ta không được phép truy cập trực tiếp đến các
thành viên k tĩnh.
15. Hàm tạo tĩnh
- Nó được dùng để khởi tạo cho các biến của lớp, nó được thực
hiện duy nhất 1 lần và thực hiện trước nhất ngay khi chạy chương
trình.
- Hàm tạo tĩnh là hàm tạo không có tham số.
- Dùng nó khi mà 1 số công việc chỉ thực hiện duy nhất 1 lần và
không thể làm trong hàm tạo.
16. Xây dựng lớp dẫn xuất
Cú pháp:
Class lopdx:lopcs
{
}
Ví dụ:
Class B:A
{

}
Gọi phương thức:
Tênđt.phương_thức
Ví dụ:
Lớp dẫn xuất được thừa kế những gì?
• All trừ thành phần tĩnh, hàm tạo, hàm hủy, phương thức toán tử gán
• Ở lớp dx được gọi hàm tạo của lớp cơ sở để khởi gán các thuộc tính của lớp
cơ sở theo cú pháp:
– Lopdx():base(){….}
Có được đặt tên thành phần trùng với lớp cơ sở?
• Thuộc tính: được
• Phương thức: được nhưng khi viết cần thêm từ khóa new
Ví dụ:
Từ khóa sealed
Lơp này sẽ không cho phép bất kỳ 1 lớp nào dẫn xuất từ nó.
Khi khai báo 1 lơp A là sealed thì khai báo
Class B:A là bị lỗi
Từ khóa virtual
• virtual để định nghĩa một phương thức hỗ trợ cho tương ứng bội
• Nó được dùng để định nghĩa lại một phương thức trong lớp
• Virtual không dùng với static và đi luôn đi kèm với override
• Khai báo phương thức ảo
[access modifier] virtual [return-type] name( [parameters-list] )
{
//virtual method implementation
}
Ví dụ:
Từ khóa new
• Sử dụng trong operator hoặc viết lại một phương thức của lớp dx cùng tên
với phương thức của lớp cs

• Nếu dùng new và override trong cùng một phương thức thì không hợp lệ
Ví dụ về nạp chồng phương thức:
Ví dụ về nạp chồng toán tử:
public class Time
{
int hours, minutes;
public Time(int hours, int minutes)
{
this.hours = hours;
this.minutes = minutes;
}
public new Time operator + ( Time second)
{
return new Time(hours + second.hours, minutes + second.minutes);
}
}
17. Lớp cơ sở trừu tượng
- Là lớp mà các lớp khác có thể được dẫn xuất từ chúng
- Lớp cơ sở trừu tượng không được vó thể hiện
- C# cho phép tạo lớp cơ sở trừu tượgn bằng cách thêm từ khóa abstract vào
định nghĩa lớp.
- 1 phương thức trừu tượng đc dn trong lớp cơ sở trừu tượng và việc thực thi
nó sẽ đc viết trong các lớp dx
Ví dụ:
using System;
abstract class BaseClass
{
public abstract void MethodA();
public void MethodB()
{

Console.WriteLine ("This is the non abstract method”); }
}
class DerivedClass : BaseClass
{
public override void MethodA()
{
Console.WriteLine ("This is the abstract method
overriden in derived class");
}
}
18. Giao diện
- 1 interface là một lớp cơ sở hoàn toàn trừu tượng
- Nó chỉ chứa các phương thức ảo, không có phương thức thực thi
- Một thể hiện của một giao diện phải thực thi các thành phần được liệt kê
trong interface
Cấu trúc:
public interface IFile
{
int delFile();
void disFile();
}
Ví dụ:
public interface IFile
{
int delFile();
void disFile();
}
public class MyFile : IFile
{
public int delFile()

{
System.Console.WriteLine ("DelFile Implementation!");
return(0);
}
public void disFile()
{
System.Console.WriteLine ("DisFile Implementation!");
}
}
Xung đột trong giao diện( interface)
• Xảy ra khi 2 interface đặt cùng tên 1 phương thức nào đấy
public interface IFile
{
int delFile();
void disFile();
}
public interface IFileTwo
{
void applySecondInterface();
void disFile();
}
Thừa kế interface
• Có thể tạo một gd mới bằng cách kết hợp một số gd vào nhau theo cú pháp
tương tự như xây dựng lớp dx.
interface IAllFile : IFile, IFileTwo
{
//More operations can be added if necessary
//(apart from that of IFile & IFileTwo)
}
19. Sự khác nhau giữa lớp trừu tượng và giao diện

- Một lớp trừu tượng thì không có thể hiện nghĩa là ta không thể khởi tạo
nó bằng toán tử new, và một phương thức trong nó là abstract thì chỉ được
đưa ra định nghĩa (khai báo) mà không được thực thi và nó sẽ được
overriden lại trong các lớp con kế thừa. Và trong lớp mà tồn tại phương
thức abstract thì lớp đó cũng được định nghĩa abstract.
- Đối với giao diện thì khác hoàn toàn với lớp trừu tượng, nó định nghĩa
một cách cứng nhắc các phương thức và thuộc tính trong chúng nghĩa là
không cho phép ta thực thi bất kỳ một đoạn mã nào. Và tất cả các thành
viên trong nó đều được định nghĩa công khai (public). Một cách tổng quan
về giao diện: Giao diện là ràng buộc, giao ước đảm bảo cho các lớp hay
các cấu trúc sẽ thực hiện một điều gì đó. Khi một lớp thực thi một giao
diện, thì lớp này báo cho các thành phần client biết rằng lớp này có hỗ trợ
các phương thức, thuộc tính, sự kiện và các chỉ mục khai báo trong giao
diện.
- Một class chỉ có thể kế thừa từ một abstract class, nhưng có thể kế thừa
nhiều interface.
- Trong Interface chỉ có thể khai báo các fields, methods, mà không được
hiện thực nó. Còn đối với abstract thì dùng các biến, hiện thực cách
methods.
- Các fields, methods trong interace đều là public và bắt buộc các class kế
thừa phải cài đặt nó (abstract). Trong abstract class thì có các fields,
methods có thể là private, internal, public, protected và có thể là abstract
hoặc non-abstract.
- Interface dùng để gom các hành động cần được hiện thực , các khả năng
của một đối tượng, còn abstract class cho các lớp thừa kế cùng 1 loại, tính
chất hay trạng thái.
- Abstract class có tốc độ thực thi nhanh hơn interface.
- Thêm 1 tính năng mới vào interface sẽ phá vỡ toàn bộ các lớp hiện thực,
còn abstract thì không.
20. Properties

- Ta có thể khai báo các trường hoặc các phương thức là public, private,
protected, internal.
- Nếu là public field thì được truy xuất trong 1 lớp khác nhưng private thì
không
- C# sử dụng đặc trưng properties để truy xuất hay thiết đặt dữ liệu của các
trường.
Cú pháp:
• Get được dùng để đọc giá trị .
• Set được dùng để thiết đặt giá trị .

Property chỉ đọc:
Property chỉ ghi:
Property đọc và ghi:
Tác dụng của Property
• Thay đổi private field
• Đọc private field
• Thực hiện việc đóng gói dữ liệu
• Thực thi việc trừu tượng hóa
21. So sánh Properties và Fields
Properties Field
- Là dữ liệu thành phần mà nó có thể
thiết đặt hoặc truy xuất dữ liệu
- Không dùng với ref và out vì không
chứa giá trị
- Đoạn mã sau tạo ra một property có
tên là amount
- Public int Amount{ get{};set{};}
- Là thành phần dữ liệu mà nó dùng để
chứa giá trị
- Có thể dùng với ref và out

- Đoạn mã sau tạo ra một trường có tên là
calcAmount
- Private int calcAmount;
22. So sánh Property và Method
Property Method
Thể hiện đặc trưng của đối tượng
Không có tham sô
Có thể overridden nhưng không thể
overloading
Thể hiện ứng xử của đối tượng
Có thể chứa tham số
Có thể overridden và overloaded
23.Indexers
- Indexers là thành phần dữ liệu mà cho phép ta truy xuất dữ liệu trong đối
tượng tương tự như truy xuất trong mảng.
- Giúp cho việc truy xuất dữ liệu của đối tượng được nhanh hơn
Cú pháp khai báo index:
24. Parameters
- Indexers phải có ít nhất một parameter.
- The parameter chỉ thứ tự. Vị trí, việc sử dụng vị trí của index mà dữ liệu
được lưu trữ là vị trí mà ta thiết đặt hay truy xuất giá trị.
- Index có thể có nhiều tham số như mảng nhiều chiều.
25. Lập trình cơ sở dữ liệu:
25.1: Đặc điểm của ADO.NET
 Thiết kế hoàn toàn dựa vào XML.
 Thiết kế hoàn toàn hướng đối tượng.
 Dữ liệu được đưa vào bộ nhớ dưới dạng DataSet (tương đương với 1
DataBase).
 Duyệt dữ liệu 1 cách tự do, ngẫu nhiên truy cập thẳng vào bảng, dòng, cột
mong muốn.

 Trao đổi dữ liệu qua internet rất dễ dàng.
 Tương tác với hầu hết các loại CSDL: MS SQL server, MySQL, Access,
Excel, …
 Hỗ trợ mô hình kết nối không thường xuyên (Ngắt kết nối - disconnected).
 Một tập con của dữ liệu trung tâm được sao chép và bổ sung độc lập
(sử dụng DataSet), sau đó sẽ được cập nhật lại vào dữ liệu trung tâm.
25.2 Kiến trúc của ADO.NET
Kiến trúc của ADO.NET gồm 2 phần chính:
 Phần kết nối: bao gồm các .NET Framework data Providers. sử dụng khi kết
nối CSDL và thao tác dữ liệu, phải thực hiện kết nối khi thao tác
 Connection: quản lý việc đóng mở DB
 ???Connection: SqlConnection, OleDbConnection
 Command: lệnh truy vấn, tương tác dữ liệu khi đang lập kết nối
 ???Command: SqlCommand, OleDbCommand
 DataReader: bộ đọc dùng để đọc nhanh dữ liệu theo 1 chiều.
 ???DataReader: SqlDataReader, OleDbDataReader
 DataAdapter: cầu nối giữa DB và DataSet
 Phần ngắt kết nối: là DataSet
 DataSet không quan tâm đến DB thuộc kiểu gì, và lấy dữ liệu từ
DataAdapter để xử lý
 DataSet xem như một DB trong bộ nhớ: bảng, quan hệ…
 DataSet có các thành phần con như
 DataTable
 DataRow
 DataColumn
 DataRelation
 Các đối tượng nhóm: DataTableCollection,
DataRowCollection, DataColumnCollection
25.3 Các lớp thư viện ADO.NET
 System.Data.OleDb à Access, SQL Server, Oracle

 System.Data.SqlClient à SQL Server
 System.Data.OracleClient à Oracle
 Đặc điểm:
 Cả ba thư viện trên về giao tiếp lập trình là giống nhau
 Dùng thư viện SqlClient truy xuất SQL Server nhanh hơn OleDb
 Tương tự cho OracleClient
25.4 Thao tác với CSDL SQL server
 Để thao tác với CSDL SQL server ta dùng sql Data provider.
 Khi làm việc với CSDL SQL server ta chú ý 2 trường hợp:
 Câu lệnh SQL là câu Select
 Câu lệnh SQL là các câu như Update, Delete, insert.
A, Câu lệnh SQL là câu Select
Ta xét Ví dụ: Tạo 1 form giao diện chỉ có 1 DataGridView để hiển thị dữ liệu của
bảng tblChatLieu trong CSDL vừa tạo
 B ước 1: Tham chiếu đến Namespace System.Data. (Thông thường với ứng
dụng windown Form thì Namespace này mặc định đã có). Nếu chưa có ta
làm như sau:
 Kích chuột phải vào tên dự án, rồi chọn Add Reference cửa sổ sau
xuất hiện hình sau: (Chọn như hình vẽ rồi nhấn OK)
Sau khi thêm một quy chiếu vào assembly, ta thêm vào các Namespace sau:
 using System.Data;
 using System.Data.SqlClient;
 Bước 2: Khai báo chuỗi kết nối.
 string conectString = " Data Source= serverName; Initial
Catalog=dataBaseName; User ID=UserName;Password=password;";
 Chú ý: Nếu ta dùng quyền đăng nhập vào CSDL là quyền đăng nhập
vào windows thì ta không cần 2 thuộc tính chỉ user ID và Password.
Ta thêm thuộc tính Integrated Security=True;
 Bước 3: Khai báo câu lệnh SQL.
 string sqlString=“select * from tableName”;

 Bước 4: Thiết lập 1 connection (SqlConnection)
 SqlConnection objConnect = new SqlConnection(conectString);
 Bước 5: Cho mở kết nối.
if (objConnect.State != ConnectionState.Open)
objConnect.Open();
 Bước 6: Tạo đối tượng DataAdapter
SqlDataAdapter dad = new SqlDataAdapter(sqlString,objConnect);
 Bước 7: Tạo đối tượng DataSet để điền dữ liệu.
DataSet dts = new DataSet();
dad.Fill(dts, “TenDataTable");
 Bước 8: Đóng kết nối.
if (objConnect.State != ConnectionState.Closed)
{
objConnect.Close();
objConnect.Dispose();
}
B, Câu lệnh SQL là các câu như Update, Delete, insert
 Bước 1, 2, 3, 4, 5: Làm tương tự như trên.
 Bước 6: Ta dùng đối tượng SqlCommand như sau
SqlCommand objCommand = new SqlCommand();
objCommand.Connection = objConnect;
objCommand.CommandText = strString.ToString();
//Thực thi câu lệnh sql
objCommand.ExecuteNonQuery();
objCommand. Dispose();
 Bước 7: đóng kết nối
25.5 viết mã lệnh cho form chính
 Form chính có các nhiệm vụ sau:
 Tạo biểu tượng Icon cho form (Chuẩn bị một file ảnh muốn làm biểu
tượng ví dụ Book.ico lưu vào thư mục /BanHang/Images)

 Mở các form tương ứng với các mục menu.
 Tạo biểu tượng. Ta viết code cho sự kiện Load như sau:
private void frmMain_Load(object sender, EventArgs e)
{
this.Icon = Icon.ExtractAssociatedIcon(Application.StartupPath +
"/Images/Book.ico");
}
 Application.StartupPath: Trả về đường dẫn của thư mục chứa file thực
thi của ứng dụng: /bin/debug
 Mở các form tương ứng với các mục menu.
 Giả sử khi ta chọn menu mnuChatLieu (Chất liệu) thì mở ra form tương ứng
là form chất liệu (frmChatLieu) ta viết code cho sự kiện click của
mnuChatLieu như sau:
private void mnuChatLieu_Click(object sender, EventArgs e)
{
Forms.frmChatLieu frmCL = new
BanHang.Forms.frmChatLieu();
frmCL.ShowDialog();
}
 Phương thức Show() # ShowDialog()
 frmChatLieu nằm trong thư mục /BanHang/Forms/
Với các form khác cũng tương tự.
25.6. Xây dựng lớp xử lý dữ liệu
 Ta thấy đối với việc thực thi các câu lệnh SQL đều giống nhau ở các bước.
 Tham chiếu đến System.Data.
 Thiết lập chuỗi kết nối, chuỗi lệnh SQL.
 Thiết lập Connection (SqlConection)
 Mở kết nối.
 Đóng kết nối.
 Viết các hàm để dùng chung: Hàm mở kết nối, hàm đóng kết nối.

 Khi xây dựng một ứng dụng ta sẽ phải thao tác với rất nhiều câu lệnh SQL
với các bảng khác nhau. Quy trình thực hiện của chúng là giống nhau, chỉ
khác nhau ở câu lệnh SQL.
è Xựng một lớp xử lý dữ liệu để dùng chung cho toàn ứng dụng.
 Thêm một file mới vào dự án. Đặt tên là DataProcess.
 Ta viết lớp này gồm các biến cục bộ chung như sau:
string connectString = "Data Source=.\\SQLEXPRESS; Initial
Catalog=DuLieu;User ID=sa;Password=123456";
SqlConnection objConnect = null;
 Lớp này gồm các phương thức sau:
 Phương thức mở kết nối.
 Phương thức đóng kết nối.
 Phương thức thực hiện 1 câu lệnh select trả về 1 DataTable.
Phương thức thực hiện một câu lệnh SQL: thường dùng khi viết các câu lệnh dạng
insert, update, delete
25.7 Phương thức mở kết nối

Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×