1. Trang chủ
  2. » Luận Văn - Báo Cáo

Tìm hiểu ngôn ngữ c và ứng dụng trong chương trình quản lí học viên tại trung tâm tin học ngoại ngữ đh vinh

52 382 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 52
Dung lượng 5,5 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Và khi gọiphương thức trong một thể hiện của lớp thừa hưởng thì phương thức của lớpthừa hưởng sẽ được thi hành mà không quan tâm đến phương thức đó ở lớp cơ sở.. Khác với C++ và Java, tr

Trang 1

===== =====

Khãa luËn tèt nghiÖp

§Ò tµi:

t×m hiÓu ng«n ng÷ c# vµ øng dông trong ch¬ng tr×nh qu¶n lý häc viªn t¹i trung t©m

tin häc ngo¹i ng÷ §H vinh

Gi¸o viªn híng dÉn: ThS Vò V¨n Nam

Sinh viªn thùc hiÖn: Lª Thïy T©m

Líp: 43E2 - CNTT

Vinh - 5/2007

Trang 2

Lời nói đầu 1

Chơng I:tìm hiểu về ngôn ngữ c# 3

I.1 Tổng quan về ngôn ngữ C# 3

I.2 Cơ bản về C# 3

I.2.1 Biến 3

I.2.2 Hằng 4

I.2.3 Câu lệnh điều kiện 4

I.2.4 Vòng lặp 4

I.2.5 Cấu trúc chơng trình 6

I.2.6 Phơng thức 7

I.2.7 Toán tử 8

I.2.8 An toàn kiểu 9

I.2.9 Kiểu liệt kê 9

I.2.10 Namespaces 9

I.2.11 Phơng thức Main() 9

I.2.12 Console I/O 9

I.2.13 Sử dụng các ghi chú 10

I.2.14 Từ định danh và từ khoá 10

I.3 Hớng đối tợng trong C# 11

I.3.1 Lớp và thừa kế 11

I.3.2 Gọi các phiên bản cơ sở của các chức năng 12

I.3.3 Các lớp và hàm Astract 12

I.3.4 Sealed các lớp và phơng thức 13

I.3.5 Những bổ từ truy cập 13

I.3.6 Thuộc tính 13

I.3.7 Lớp đối tợng 14

I.3.8 Phơng thức Tostring() 15

Trang 3

II.1 Tổng quan về ADO.NET 16

II.1.1 Các Namespace 16

II.1.2 Các lớp dùng chung 17

II.1.3 Các lớp cơ sở chuyên biệt 17

II.2 Sử dụng các Database Connection 18

II.3 Commands 23

II.3.1 Executing Commands 24

II.3.2 Gọi các Stored Procedure 25

II.4 Tạo một Dataset 25

II.5 Các cố gắng thay đổi Dataset 26

II.6 Nguồn dữ liệu 27

II.7 Gắn kết CSDL 27

chơng III: Phân tích và thiết kế hệ thống 28

III.1 Lựa chọn hớng phân tích 28

III.2 Phân tích hệ thống cũ 28

III.3 Thiết kế hệ thống mới 28

III.4 Sơ đồ phân cấp chức năng 29

III.5 Biểu đồ luồng dữ liệu 30

III.6 Mô hình thực thể và các thuộc tính 35

III.7 Thiết kế các file dữ liệu 40

chơng IV: Thiết kế Giao diện và thiết kế modul 44

kết luận 48

lời kết 49

Trang 6

lời nói đầu

Cùng với sự phát triển của các lĩnh vực kinh tế, xã hội, nhu cầu ứngdụng công nghệ thông tin ngày càng cao và không ngừng biến đổi Khi hệthống càng phát triển, càng phức tạp thì các phơng thức quản lý cổ điểntruyền thống sẽ trở nên cồng kềnh và khó có thể đáp ứng đợc yêu cầu ngàycàng cao của hệ thống Để xử lý các thông tin một cách nhanh chóng, chínhxác và có hiệu quả, đòi hỏi phải có sự hỗ trợ của một công cụ hiện đại, đóchính là công nghệ thông tin

Sự phát triển nhảy vọt của công nghệ thông tin đã tác động mạnh mẽ

đến các hoạt động xã hội, làm thay đổi một cách sâu sắc đến phong cáchsống làm việc của một xã hội Công nghệ thông tin đã trở thành trụ cột chínhcủa nền kinh tế tri thức ứng dụng công nghệ thông tin vào việc quản lý cáchoạt động xã hội và nghiên cứu khoa học đợc nhiều ngời quan tâm Phạm viứng dụng của công nghệ thông tin ngày càng mở rộng trên nhiều lĩnh vực:truyền thông, đo lờng, tự động hoá, quản lý các hoạt động của con ngời và xãhội Những lợi ích mà các phần mềm ứng dụng mang lại là đáng kể: xử lýthông tin nhanh chóng, chính xác, khoa học, giảm bớt nhân lực và công sức,phí tổn thấp và hiệu quả công việc nâng cao một cách rõ rệt

Trong lĩnh vực công nghệ thông tin, các ngôn ngữ lập trình, các hệquản trị cơ sở dữ liệu không ngừng phát triển và đổi mới, cho phép chúng taxây dựng các phần mềm ứng dụng hỗ trợ việc quản lý các hoạt động xã hộimột cách tốt nhất

Trong đề tài này tôi đề cập đến Tìm hiểu ngôn ngữ lập C# và ứng“Tìm hiểu ngôn ngữ lập C# và ứng

dụng trong chơng trình quản lý Học viên ở Trung tâm tin học ngoại ngữ

Đại học Vinh”.

Với tầm quan trọng của ứng dụng công nghệ thông tin trong quản lýnên tôi muốn tìm hiểu ngôn ngữ lập trình C# và hệ quản trị cơ sở dữ liệuMicrosoft Access để xây dựng phần mềm quản lý Học viên ở Trung tâm Tinhọc – Ngoại ngữ Đại học Vinh

Khoá luận bao gồm:

Chơng I Tìm hiểu về ngôn ngữ lập trình C#

Chơng II Lập trình C# với CSDLChơng III Phân tích và thiết kế hệ thốngChơng IV Thiết kế giao diện và thiết kế Modul

Trang 7

Lời kếtTài liệu tham khảoKhoá luận đợc hoàn thành vào tháng 5 năm 2007 tại trờng Đại Học

Vinh, với sự hớng dẫn của thầy giáo Thạc sĩ Vũ Văn Nam Nhân dịp này

tôi xin bày tỏ lòng biết ơn sâu sắc đến thầy, ngời đã định hớng và tận tìnhgiúp đỡ tôi trong quá trình học tập nghiên cứu Cảm ơn các thầy cô giáo khoaCông nghệ thông tin trờng Đại Học Vinh đã giảng dạy và chỉ bảo những vấn

đề liên quan đến đề tài Xin cảm ơn các thầy cô ở Trung Tâm Tin học Ngoại ngữ trờng Đại Học Vinh đã tạo điều kiện cho tôi trong quá trình khảosát hệ thống và hoàn thành chơng trình ứng dụng này Xin cảm ơn ngời thân

-và bạn bè đã giúp đỡ tạo điều kiện cho tôi suốt quá trình học tập -và hoànthành khoá luận

Vinh, tháng 5 năm 2007.

Sinh viên

Lê Thùy Tâm

Trang 8

Chơng Itìm hiểu về ngôn ngữ lập trình c#

C# là một ngôn ngữ lập trình mạnh, mới lập trình làm việc trên các đốitợng Nó hỗ trợ ngời lập trình trên mọi phơng diện, có thể nói nó cung cấp cácphơng tiện để lập trình tự động C# có thể lập trình “Tìm hiểu ngôn ngữ lập C# và ứngmọi thứ” nếu cần

Ngoài những u việt trên C# còn kết nối đợc với các hệ quản trị CSDLkhác nh Access, SQL, Nó tạo thuận lợi vô cùng cho ngời lập trình khi lậptrình về quản lý hay lập trình liên quan đến web

I.2 Cơ bản C#

C# là một ngôn ngữ lập trình hớng đối tợng do đó chúng ta phải nắmvững thế nào là class, objects, interface v inheritance.à inheritance

I.2.1 Biến

Một biến dùng để lu trữ giá trị mang một kiểu dữ liệu nào đó Cú phápC# sau đây dùng để khai báo một biến: [ modifier ] datatype identifer VớiModifier là một trong những từ khoá: public, private, protected, cònDatatype là kiểu dữ liệu (int, long, float ) và identifier là tên biến

Phạm vi hoạt động của biến là vùng đoạn mã mà từ đó biến có thể truyxuất đợc Trong một phạm vi hoạt động, không thể có hai biến cùng mang mộttên trùng nhau

I.2.2 Hằng

Một hằng là một biến nhng trị của nó không thể thay đổi trong suốt thờigian thi hành chơng trình Đôi lúc ta cũng cần có những giá trị bao giờ cũngbất biến Những thuận lợi khi dùng hằng trong chơng trình của bạn:

+ Hằng làm cho chơng trình đọc dễ dàng hơn, bằng cách thay thế nhữngcon số vô cảm bởi những tên mang đầy ý nghĩa hơn

+ Hằng làm cho dễ sửa chơng trình hơn

Trang 9

I.2.3 Câu lệnh điều kiện

+ Câu lệnh điều kiện if

C# cung cấp cho chúng ta 4 vòng lặp khác nhau (for, while, do while,

và foreach) cho phép chúng ta thực hiện một đoạn mã lặp lại cho đến khi đúng

MustBeCalledAtLeastOnce();

condition = CheckCondition();

Trang 10

} while (condition);

+ Vòng lặp foreach (The foreach Loop)

Cho phép bạn duyệt qua tất cả các phần tử bản dãy hoặc các tập hợpkhác, và tuần tự xem xét từng phần tử một

+ Câu lệnh Return

Câu lệnh Return dùng thoát khỏi một hàm hành sự của một lớp, trảquyền điều khiển về phía triệu gọi hàm (caller) Nếu hàm có một kiểu dữ liệutrả về thì return phải trả về kiễu dữ liệu này, bằng không thì câu lệnh đợc dùngkhông có biểu thức

I.2.5 Cấu trúc chơng trình

+ Lớp

Nh bạn đã biết, các class tạo nên một chơng trình lớn trong C# Tuynhiên nó thực sự có khả năng viết 1chơng trình mà không sử dụng đến lớp, ở

đây chúng ta chỉ cần một ít về lớp Lớp là một khuôn mẫu thiết yếu mà chúng

ta cần tạo ra đối tợng Mỗi đối tợng chứa dữ liệu và các phơng thức chế táctruy cập dữ liệu Lớp định nghĩa cái mà dữ liệu và hàm của mỗi đối tợng riêngbiệt (đợc gọi là thể hiện) của lớp có thể chứa

+ Các lớp thành viên

Dữ liệu và các hàm không có lớp đợc biết nh là lớp thành viên

+ Thành phần dữ liệu (Datamembers) là những thành phần chứa dữ liệucho lớp – Trờng (fields), Hằng số (Constants) và sự kiện (events)

Fields là các biến kết hợp với lớp

Trang 11

Các hằng số có thể kết hợp với các lớp nh là biến Chúng ta khai báomột hằng số sử dụng từ khoá const Nếu nó khai báo public thì có thể truy cập

new Phương thức ẩn một phương thức kế thừa với cựng kớ hiệu

public Phương thức cú thể được truy cập bất kỳ

protected Phương thức cú thể bị truy xuất khụng từ lớp nú thuộc hoặc từ

lớp dẫn xuất;

internal Phương thức cú thể được truy cập khụng cựng assembly

private Phương thức cú thể được truy cập từ bờn trong lớp nú phụ thuộcstatic Phương thức cú thể khụng được tớnh trờn trờn một lớp thể hiển

cụ thểvirtual Phương thức bị ghi đố bởi một lớp dẫn xỳõt

abstract Phương thức trừu tượng

override Phương thức ghi đố một phương thức ảo kế thừa hoặc trừu

tượng

sealed Phương thức ghi đố một phương thức ảo kế thừa, nhưng khụng

thể bị ghi đố từ lớp kế thừa nàyextern Phương thức được thực thi theo bờn ngoài từ một ngụn ngữ khỏc+ Cấu trúc (Structs)

Ngoài các lớp nó cũng có thể để khai báo các cấu trúc, cấu trúc về cơbản bạn biết ngoại trừ chúng ta dùng từ khoá structs thay cho class

I.2.6 Phơng thức

+ Khai báo phơng thức (Declaring Metholds)

Cú pháp khai báo trong C# gần nh giống với cách khai báo C, C++ vàJava Chỉ khác là mỗi phơng thức đợc khai báo tách biệt public và private.Không thể dùng public để nhóm các phơng thức định nghĩa Ngoài ra tất cảcác phơng thức trong C# đợc định nghĩa trong lớp định nghĩa

Trong C#, các phơng thức kèm theo các từ khoá dùng bổ nghĩa cho

ph-ơng thức, kiểu giá trị trả về, các tham số nhập vào và phần thân trong dấungoặc kép

[modifiers] return_type MethodName([parameters])

{

// Thõn phương thức

Trang 12

}

Mỗi tham số có tên của kiểu của tham số và tên mà nó đợc tham khảotrong thân phơng thức, và cả giá trị trả về nếu có

+ Gọi phơng thức (Invoking Methods)

+ Truyền tham số cho phơng thức (Passing Paramemter to Methods)

- Mảng (Arrays): là một cấu trúc dữ liệu cấu tạo bởi một số biến đợc gọi

là những phần tử mảng Tất cả các phần tử này đều thuộc một kiểu dữ liệu.Bạn có thể truy xuất phần tử thông qua chỉ số (Index)

Có nhiều loại mảng: mảng 1 chiều, mảng nhiều chiều

I.2.8 An toàn kiểu (Type Safety)

+ Quá trình chuyển đổi kiểu (Type Conversions)

Chỳng ta thường chuyển đổi dữ liệu từ một kiểu sang kiểu khỏc

+ Implicit Conversions

Trang 13

B ng sau hi n th cách chuy n ảng dưới đây trình bày một danh sách đầy đủ của shortcut ển thị cách chuyển đổi kiểu implicit được hỗ trợ trong ị trong C#: ển thị cách chuyển đổi kiểu implicit được hỗ trợ trong đây trình bày một danh sách đầy đủ của shortcutổi kiểu implicit được hỗ trợ trongi ki u implicit ển thị cách chuyển đổi kiểu implicit được hỗ trợ trong đây trình bày một danh sách đầy đủ của shortcutược hỗ trợ trongc h tr trongỗ trợ trong ợc hỗ trợ trongC#.

sbyte short, int, long, float, double, decimal

byte short, ushort, int, uint, long, ulong, float, double, decimalshort int, long, float, double, decimal

ushort int, uint, long, ulong, float, double, decimal

int long, float, double, decimal

uint long, ulong, float, double, decimal

long, ulong float, double, decimal

float double

char ushort, int, uint, long, ulong, float, double, decimal

I.2.9 KiÓu liÖt kª

Phương án thay thế hằng là enumeration (liệt kê), gồm một tập hợpnhững hằng đuợc đặt tên

I.2.10 Namespaces

Namespace cung cấp cho ta cách mà chúng ta tổ chức quan hệ giữa cáclớp và các kiểu khác Namespace (địa bàn hoạt động của các tên) là cáchmà.NET tránh né việc các tên lớp, tên biến, tên hàm đụng độ vì trùng têngiữa các lớp

Trang 14

chương trỡnh C# phải chứa một hàm main(), được xem là điểm đột nhập vàochương trỡnh.

I.2.12 Console I/O

Để đọc một ký tự văn bản từ cửa sổ console, chỳng ta dựng phươngthức Console.Read(), giỏ trị trả về sẽ là kiểu int hoặc kiểu string tuỳ ý Vàchỳng ta cũng cú hai phương thức dựng để viết ra chuổi ký tự như sau

Console.Write() - Viết một giỏ trị ra cửa sổ window

Console.WriteLine() - tương tự trờn nhưng sẽ tự động xuống hàng khi kết thỳc lệnh

I.2.13 Sử dụng các ghi chú

Ở chủ đề này chỳng ta xem phần đơn giản của chương này đú là thờm cỏc ghi chỳ vào đoạn mó C# sử dụng kiểu truyền thống của C hàng đơn (// )

và nhiều hàng (/* */)

I.2.14 Từ định danh và từ khoá

Trong phần này chỳng ta khảo sỏt cỏc quy tắc để đặt tờn cho cỏc biến,lớp, cỏc phương thức

Từ định danh là tờn chỳng ta đặt cho biến, để định nghĩa kiểu sử dụngnhư cỏc lớp, cấu trỳc, và cỏc thành phần của kiểu này C# cú một số quy tắc

để định rừ cỏc từ định danh như sau:

Chỳng phải bắt đầu bằng ký tự khụng bị gạch dưới

Chỳng ta khụng được sử dụng từ khoỏ làm từ định danh

Trong C# cú sẵn một số từ khoỏ (keyword).

Trang 15

char finally namespace sealed unchecked

private int someField;

public string SomeMethod(bool parameter)

lớp đó Ví dụ chúng ta dùng thuật ngữ Function để chỉ những thành viên chứa

mã như các phương thức(methods), các thuộc tính(properties), constructor,hay các nạp chồng toán hạng(Operator Overloads) Tất cả các lớp trong C# lànhững kiểu tham khảo Tức là khi bạn khai báo một kiểu lớp thì có một biếnlưu trữ sự tham khảo đến một thể hiện (instance) của lớp đó Và sử dụng lệnh

new để tạo ra một đối tượng.

Trang 16

// functions and data members here

}

Cú pháp này khác với C++ về phạm vi, không có bổ từ truy cập(accessmodifier) Tức là C# không hỗ trợ như C++ về các khái niệm thừa kế publichay private vì nó làm ngôn ngữ thêm phức tạp Trong thực tế thì thừa kếprivate rất ít được sử dụng

Trong C# một lớp bắt buột phải thừa kế từ một lớp nào đó C# hỗ trợ

một lớp cơ sở toàn diện gọi là System.Object.

Ph¬ng thøc n¹p chång (Overloading)

C# hỗ trợ phương thức nạp chồng với một vài dạng phương thức khácnhau về những đặc tính sau: tên, số lượng thông số, và kiểu thông số Nhưng

nó không hỗ trợ những thông số mặc định như C++ và VB

Trong C# có một vài điểm khác nhỏ về thông số trong các phương thứcnạp chồng cần biết như sau:

Nó không chấp nhận hai phương thức chỉ khác nhau về kiểu trả về Nó không chấp nhận hai phương thức chỉ khác nhau về đặc tính củamột thông số đang được khai báo như ref hay out

Ph¬ng thøc Overriden vµ Hide:

Bằng cách khai báo virtual trong một hàm ở lớp cơ sở thì cho phéphàm đó được overriden trong bất kỳ một lớp thừa hưởng nào Và khi gọiphương thức trong một thể hiện của lớp thừa hưởng thì phương thức của lớpthừa hưởng sẽ được thi hành mà không quan tâm đến phương thức đó ở lớp cơ

sở Khác với C++ và Java, trong C# những hàm không được khai báo virtual mặc định mà bạn phải khai báo virtual một cách rõ ràng và khi một hàm muốn override một hàm khác thì phải sử dụng từ khoá override.

I.3.2 Gäi c¸c phiªn b¶n c¬ së cña c¸c chøc n¨ng (base versions of functions)

Trong C# có một cú pháp đặc biệt để gọi những phiên bản cơ sở của

một phương thức từ một lớp thừa hưởng Cú pháp: base.<methodname>().

I.3.3 C¸c líp vµ hµm Astract

Trang 17

C# cho phép cả lớp và phương thức có thể khai báo abstract Một lớp

abstract không được thể hiện và một phương thức abstract không được thựcthi mà phải được overriden trong bất kỳ lớp thừa hưởng không abstract nào

Một phương thức abstract sẽ tự động được khai báo virtual.

I.3.4 Sealed c¸c líp vµ ph¬ng thøc

C# cho phép các lớp và phương thức được khai báo sealed Nếu là lớp

có nghĩa là bạn không được quyền thừa kế lớp đó, nếu là phương thức tức làbạn không được phép override nó

I.3.5 Nh÷ng bæ tõ truy cËp (Aceess Modifiers)

Trong C# cung c p m t s lấp một số lượng những bổ từ để cho biết sự tồn tại ột danh sách đầy đủ của shortcut ố lượng những bổ từ để cho biết sự tồn tại ược hỗ trợ trongng nh ng b t ững bổ từ để cho biết sự tồn tại ổi kiểu implicit được hỗ trợ trong ừ để cho biết sự tồn tại đây trình bày một danh sách đầy đủ của shortcutển thị cách chuyển đổi kiểu implicit được hỗ trợ trong cho bi t s t n t iết sự tồn tại ự tồn tại ồn tại ại

c a m t th nh viên c a m t l p C# có 5 b t nh sau:ủ của shortcut ột danh sách đầy đủ của shortcut à inheritance ủ của shortcut ột danh sách đầy đủ của shortcut ới đây trình bày một danh sách đầy đủ của shortcut ổi kiểu implicit được hỗ trợ trong ừ để cho biết sự tồn tại ư

public Biến và phương thức có thể được truy cập từ bất kỳ nơi đâu.internal Biến và phương thức chỉ có thể được truy cập trong cùng một

gói

protected Biến hay phương thức chỉ có thể được truy cập từ kiểu của nó

hay từ những kiểu thừa kế kiểu đó

I.3.6 Thuéc tÝnh (Properties)

Để định nghĩa thuộc tính trong C# bạn dùng cú pháp sau:

public string SomeProperty

Trang 18

}

}

Khỏc với VB cỏc thủ tục get và set được định nghĩa như là những hàmriờng biệt, trong C# chỳng được khai bỏo cựng nhau trong một khai bỏo thuộctớnh đơn.Trong VB bạn khai bỏo tường minh tham số cho thủ tục set và cú thểchọn tờn của nú, nhưng ngược lại trong C# tham số này hoàn toàn giả lập vàluụn mang tờn là value

+ Thuộc tính chỉ đọc và chỉ viết

Bạn cú thể tạo ra thuộc tớnh chỉ đọc bằng cỏch bỏ thủ tục set trong khaibỏo và tạo ra thuộc tớnh chỉ ghi bằng cỏch bỏ thủ tục get trong khai báo thuộctớnh đú

+ Bổ từ truy cập

C# khụng cho phộp cài đặt những bổ từ khỏc nhau cho thủ tục set vàget Nếu bạn muốn tạo ra một thuộc tớnh cú public để đọc nhưng lại muốn hạnchế protected trong gỏn thỡ đầu tiờn bạn phải tạo thuộc tớnh chỉ đọc với bổ từpublic sau đú tạo một hàm set() với bổ từ protected ở bờn ngoài thuộc tớnh đú

+ Thuộc tính Virtual và Abstract

C# cho phộp bạn tạo một thuộc tớnh virtual hay abstract Để khai bỏomột thuộc tớnh virtual, overriden hay abstract bạn chỉ cần thờm từ khoỏ đútrong lỳc định nghĩa thuộc tớnh.

I.3.7 Lớp đối tợng

Trong C#, nếu bạn khụng chỉ rừ rằng một lớp thỡ thừa kế từ một lớpkhỏc thỡ trỡnh biờn dịch sẽ tự động hiểu rằng lớp của bạn thừa kế từ lớpObject Đều này cú nghĩa là ngoài những thuộc tớnh và phương thức mà bạnđịnh nghĩa thỡ bạn cú thể truy cập đến những phương thức protected và publiccủa lớp Object Và những phương thức này cũng cú trong tất cả lớp mà bạnđịnh nghĩa

M t s phột danh sỏch đầy đủ của shortcut ố lượng những bổ từ để cho biết sự tồn tại ương thức được định nghĩa trong lớp Object là:ng th c ức được định nghĩa trong lớp Object là: đõy trỡnh bày một danh sỏch đầy đủ của shortcutược hỗ trợ trong đõy trỡnh bày một danh sỏch đầy đủ của shortcutị trong C#:c nh ngh a trong l p Object l :ĩa trong lớp Object là: ới đõy trỡnh bày một danh sỏch đầy đủ của shortcut à inheritance

string ToString() public virtual Trả về một chuỗi mụ tả của đối tượng

Trang 19

Phương thức Bổ từ truy cập Chức năng

int GetHashTable() public virtual Được sử dụng nếu thi hành từ điểnbool Equals(object obj) public virtual So sánh các thực thể của đốitượngbool Equals(object objA,

So sánh các thực thể của đốitượng

bool ReferenceEquals(object

So sánh hai sự tham khảo đến một đối tượng

Type GetType() public Trả về chi tiết kiểu của một đối tượng.object MemberwiseClone() protected Tạo ra một bản copy của đốitượng

void Finalize() protectedvirtual Đây là một dạng Destructor của.Net

I.3.8 Ph¬ng thøc Tostring()

Tostring() là một cách tiện lợi để lấy một chuỗi mô tả đối tượng

Object.Tostring() được khai báo như virtual Trong C#, các kiểu dữ liệu

có sẵn đã được override cho chúng ta để trả chuỗi đúng với sự mô tả của các

kiểu đó Nếu bạn không override phương thức ToString() trong lớp bạn định nghĩa, thì lớp bạn sẽ thừa kế sự thực thi phương thức ToString() của

system.Object và xuất ra tên lớp của bạn Nếu bạn muốn phương thức ToString() trả về một chuỗi chứa nội dung thông tin về giá trị của đối tượng

của lớp bạn tạo ra thì bạn phải override phương thức ToString().

Trang 20

Ch¬ng IILËp tr×nh C# víi CSDLII.1 Tæng quan vÒ ADO.NET

Giống như hầu hết các thành phần của.NET Framework, ADO.NETkhông chỉ là vỏ bọc của một vài API sẵn có Nó chỉ giống ADO ở cái tên - cáclớp và phương thức truy xuất dữ liệu đều khác hoàn toàn

ADO (Microsoft's ActiveX Data Objects) là một thư viÖn của các thànhphần COM đã từng được ca ngợi trong một vài năm trở lại đây Phiên bảnhiện tại là 2.7, các thành phần chủ yếu của ADO là Connection, Command,Recordset, và các Field object Một connection có thể mở cơ sở dữ liệu, mộtvài dữ liệu được chọn vào một recordset, bao gồm các trường, dữ liệu này sau

đó có thể thao tác, cập nhập lên server, và connection cần phải được đóng lại.ADO cũng giới thiệu một disconnected recordset, cái được dùng khi khôngmuốn giữ kết nối trong một thời gian dài

ADO.NET chứa hai không gian tên cơ së dữ liệu - một cho SQLServer, và một cái khác cho các cơ sở dữ liệu được trình bày thông qua mộtgiao diện OLE DB Nếu cơ sở dữ liệu của bạn chọn là một bộ phận của OLE

DB, bạn có thể dễ dàng kết nối với nó từ.NET - chỉ cần dùng các lớp OLE DB

và kết nối thông qua các driver cơ sở dữ liÖu hiện hành của bạn

II.1.1 Các Namespace

Các không gian tên sau chỉ ra các lớp và các giao diện được dùng choviệc truy xuất dữ liệu trong.NET:

 System.Data - Các lớp truy xuất dữ liệu chung

 System.Data.Common - Các lớp dùng chung bởi các data provider khác nhau

 System.Data.OleDb - Các lớp của OLE DB provider

 System.Data.SqlClient - Các lớp của SQL Server provider

 System.Data.SqlTypes – C¸c kiểu của SQL Server

Các lớp chính trong ADO.NET được liệt kê dưới đây

II.1.2 C¸c líp dïng chung

Trang 21

ADO.NET chứa một số lớp được dùng không quan tâm là bạn đangdùng các lớp của SQL Server hay là các lớp của OLE DB.

Các lớp trong không gian tên System.Data được liệt kê sau đây:

 DataSet - Đối tượng này chứa một bộ các DataTable, có thể baogồm quan hệ giữa các bảng, và nó được thiết kế cho truy xuất dữliệu không kết nối

 DataTable - Một kho chứa dữ liệu Một DataTable bao gồm mộthoặc nhiều DataColumns, và khi được tạo ra nó sẽ có một hoặcnhiều DataRows chứa dữ liệu

 DataRow - Một bộ giá trị, có bà con với một dòng trong bảng cơ sở

dữ liệu, hoặc một dòng của bảng tính

 DataColumn - Chứa các định nghĩa của một cột, chẳng hạn như tên

và kiểu dữ liệu

 DataRelation - Một liên kết giữa hai DataTable trong một DataSet

Sử dụng cho khóa ngoại và các mối quan hệ chủ tớ

 Constraint - Định nghĩa một qui tắc cho một DataColumn (hoặc mét

bộ các cột dữ liệu), như các giá trị là độc nhất

Sau đây là hai lớp được tìm thấy trong không gian tênSystem.Data.Common:

 DataColumnMapping - Ánh xạ tên của một cột từ cơ sở dữ liệu vàotên của một cột trong một DataTable

 DataTableMapping - Ánh xạ tên của một bảng từ cơ sở dữ liệu vàomột bảng trong một DataSet

II.1.3 C¸c líp c¬ së chuyªn biÖt

Bổ sung cho các lớp dùng chung ở trên, ADO.NET có một số các lớp

dữ liệu chuyên biệt được đưa ra dưới đây Các lớp này thực thi một bộ cácgiao diện chuẩn được định nghĩa trong không gian tên System.Data, cho phép

sử dụng các lớp có cùng kiểu giao diện Ví dụ cả hai lớp SqlConnection vàOleDbConnection thực thi giao diện IDbConnection

Trang 22

 SqlCommand, OleDbCommand - Một vỏ bọc của các câu lệnh SQLhoặc các lời gọi stored procedure.

 SqlCommandBuilder, OleDbCommandBuilder - Một lớp sử dụngcác câu lệnh SQL (chẳng hạn như các câu lệnh INSERT, UPDATE,

và DELETE) từ một câu lệnh SELECT

 SqlConnection, OleDbConnection - Kết nối với cơ sở dữ liệu Giốngnhư một ADO Connection

 SqlDataAdapter, OleDbDataAdapter - Một lớp giữ các câu lệnhselect, insert, update, và delete, chúng được sử dụng để tạo mộtDataSet và cập nhật Database

 SqlDataReader, OleDbDataReader - Chỉ đọc, kết nối với data reader

 SqlParameter, OleDbParameter - Định nghĩa một tham số cho mộtstored procedure

 SqlTransaction, OleDbTransaction - Một giao tiếp cơ sở dữ liệu,được bọc trong một đối tượng

Một đặc tính quan trọng của các lớp ADO.NET là chúng được thiết kế

để làm việc trong môi trường không kết nối, đóng một vai trò quan trọngtrong thế giới "web-centric" Nó hiện được dùng để kiến trúc một server(chẳng hạn như mua sách qua mạng) để kết nối một server, lấy một vài dữliệu, và làm việc trên những dữ liệu này trên PC khách trước khi kết nối lại vàtruyền dữ liệu trở lại để xử lí

II.2 Sö dông c¸c Database Connection

Trong trình tự truy xuất cơ sở dữ liệu, bạn cần cung cấp các thông sốkết nối, chẳng hạn như thiết bị mà cơ sở dữ liệu đang chạy, và khả năng đăngnhập của bạn Bất kì ai đã từng làm việc với ADO sẽ dễ dàng quen với các lớpkết nối của.NET, OleDbConnection và SqlConnection:

Trang 23

Đoạn mã sau đây mô tả cách để tạo, mở và đóng một kết nối đến cơ sở

dữ liệu Northwind Các ví dụ trong chương này chúng ta dùng cơ sở dữ liệuNorthwind, được cài đặt chung với các ví dụ của.NET Framework SDK:

 server=(local)\\NetSDK - Nó biểu diễn database server được kết nối.SQL Server cho phép một số các tiến trình database server processeskhác nhau chạy trên cùng một máy, vì vậy ở đây chúng ta thực hiệnkết nối với tiến trình NetSDK trên máy cụ bộ

 uid=QSUser - Tham số này mô tả người dùng cơ sở dữ liệu Bạncũng có thể sử dụng User ID

SDK là một bộ các cơ sở dữ liệu giống nhau, và user/password nàyđược liên kết và được thêm vào trong quá trình cài đặt các vídụ.NET Bạn cũng có thể dùng Password

 database=Northwind - Cái này mô tả loại dữ liệu để kết nối - mỗitiến trình SQL Server có thể đưa ra một vài loại dữ liệu khác nhau.

Vì trên mở một kết nối cơ sở dữ liệu dùng chuỗi kết nối đã đượcđịnh nghĩa, sau đó đóng kết nối lại Khi kết nối đã được mở, bạn có thểphát các lệnh để thao tác trên cơ sở dữ liệu, và khi hoàn tất, kết nối có thểđược đóng lại

Trang 24

SQL Server có một chế độ bảo mật khác - nó có thể dùng chế độ bảomật của Windows, vì thế các khả năng truy cập của Windows có thể truyềncho SQL Server Với lựa chọn này bạn có thể bỏ đi các vị trí uid và pwd trongchuỗi kết nối, và thêm vào Integrated Security=SSPI.

Sö dông hiÖu qu¶ c¸c Connection

Một cách tổng quát, khi sử dụng các tài nguyên "hiếm" trong.NET,chẳng hạn như các kết nối cơ sở dữ liệu, các cửa sổ, hoặc các đối tượng đồhọa, tốt hơn hết bạn nên đảm bảo rằng các tài nguyên này luôn phải đượcđóng lại sau khi đã sử dụng xong Dù vậy các nhà thiết kế của.NET có thể làmđiều này nhờ trình thu gom rác, nó luôn làm sau bộ nhớ sau một khoảng thờigian nào đó, tuy nhiên nó nên được giải phóng càng sớm càng tốt

Rõ ràng là khi viết mã truy xuất một cơ sở dữ liệu, việc giữ một kết nốicàng ít thời gian càng tốt để không làm ảnh hưởng đến các phần khác Trongnhiều tình huống tiêu cực, nếu không đóng một kết nối có thể khoá không chocác người dùng khác truy nhập vào các bảng dữ liệu đó, một tác hại to lớn đốivới khả năng thực thi của ứng dụng Việc đóng một kết nối cơ sở dữ liệu cóthể coi là bắt buộc, vì thế ứng dụng này chỉ ra cách cấu trúc mã của bạn đểgiảm thiểu các rủi ro cho một mã nguồn mở

Có hai cách để đảm bảo rằng các kết nối cơ sở dữ liệu được giải phóngsau khi dùng

C¸ch 1: Tùy chọn một - try/catch/finally

Tùy chọn thứ nhất để đảm bảo rằng các tài nguyên được dọn sạch là sửdụng các khối lệnh try…catch…finally, và đảm bảo rằng bạn đã đóng các kếtnối trong khối lệnh finally Đây là một ví dụ nhỏ:

Trang 25

// Do something about the exception

Ngoài ra, bạn có thể mở một số tài nguyên (chẳng hạn hai kết nối cơ sở

dữ liệu và một file) trong một phương thức, vì vậy đôi khi các khối try…catch…finally trở nên khó đọc Có một cách khác để đảm bảo rằng các tàinguyên được dọn dẹp - sử dụng câu lệnh

C¸ch 2: Tùy chọn hai - Sử dụng khối câu lệnh

Trong lúc phát triển C#, phương thức.NET's dọn dẹp các đối tượng khichúng không còn được tham chiếu nữa sử dụng các huỷ tö bất định trở thànhmột vấn đề nóng hổi Trong C++, ngay khi một đối tượng rời khỏi tầm vực,khối huỷ tử của nó sẽ tự động được gọi Nó là một điều rất mới cho các nhàthiết kÕ các lớp sử dụng tài nguyên, khi một huỷ tử được sử dụng để đóng cáctài nguyên nếu các người dùng quên làm điều đó Một huỷ tử C++ được gọibất kì khi nào một đối tượng vượt quá tầm vực của nó - vì vậy khi một ngoại

lệ được phát ra mà không được chặn, tÊt cả các hủy tử cần phải được gọi

Với C# và các ngôn ngữ có quản khác, tất cả đều tự động, các khối huỷ

tử định trước được thay thế bởi trình thu gom rác, cái được dùng để tháo cáctài nguyên tại một thời điểm trong tương lai Chúng mang tính bất định, nghĩa

là bạn sẽ không biết trước được khi nào thì việc đó sẽ xảy ra Nếu quên khôngđóng một kết nối cơ sở dữ liệu có thể là nguyên nhân gây ra lỗi khi chạytrong.NET Mã sau đây sẽ giải thích cách để sử dụng giao diện IDisposable đểgiải phóng tài nguyên khi thoát khỏi khối using

string source = "server=(local)\\NetSDK;" +

Trang 26

Khi xem mã IL của phương thøc Dispose() của SqlConnection (vàOleDbConnection), cả hai đều kiểm tra trạng thái của đối tượng kết nối, vànếu nó đang mở phương thức Close() sẽ được gọi.

Khi lập trình bạn nên dùng cả hai tùy chọn trên Ở nh÷ng chỗ bạn cầncác tài nguyên tốt nhất là sử dụng mệnh đề using(), dù vậy bạn cũng có thể sửdụng câu lệnh Close(), nếu quên không sử dụng thì khối lệnh using sẽ đóng lạigiúp bạn Không gì có thể thay thế được mọt bẫy ngoại lệ tốt, vì thế tốt nhấtbạn dùng trộn lẫn hai phương thức như ví dụ sau:

Ngày đăng: 15/12/2015, 08:45

HÌNH ẢNH LIÊN QUAN

Bảng dưới đây trình bày một danh sách đầy đủ của shortcut  operators - Tìm hiểu ngôn ngữ c và ứng dụng trong chương trình quản lí học viên tại trung tâm tin học ngoại ngữ đh vinh
Bảng d ưới đây trình bày một danh sách đầy đủ của shortcut operators (Trang 13)
III.4. Sơ đồ phân cấp chức năng - Tìm hiểu ngôn ngữ c và ứng dụng trong chương trình quản lí học viên tại trung tâm tin học ngoại ngữ đh vinh
4. Sơ đồ phân cấp chức năng (Trang 34)

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w