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

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

56 104 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 56
Dung lượng 5,67 MB
File đính kèm ngon-ngu-lap-trinh-C#.rar (591 KB)

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

Nội dung

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 IO 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 CHƯƠNG II: LẬP TRÌNH C VỚI CƠ SỞ DỮ LIỆU 16 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 TÀI LIỆU THAM KHẢO 50

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

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ôngsứ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

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ệu

Trang 7

Microsoft 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 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 Kết luận

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áokhoa Công nghệ thông tin trường Đại Học Vinh đã giảng dạy và chỉ bảonhững vấn đề liên quan đến đề tài Xin cảm ơn các thầy cô ở Trung Tâm Tinhọc - Ngoại ngữ trường Đại Học Vinh đã tạo điều kiện cho tôi trong quátrình khảo sá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ọctập và hoàn thành khoá luận

Vinh, tháng 5 năm 2007.

Sinh viên

Lê Thùy Tâm

Trang 8

CHƯƠNG I

TÌM HIỂU VỀ NGÔN NGỮ LẬP TRÌNH C#

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

C# là một ngôn ngữ lập trình hướng đối tượng được phát triển bởiMicrosoft, là phần khởi đầu cho kế hoạch.NET của họ

C# được nghiên cứu và thiết kế trong hơn 3 năm bởi một đội ngũchuyên gia lập trình xuất sắc nhất của Microsoft C# được phát triển dựa trênhai ngôn ngữ, hay nói một cách khác là nó được bắt nguồn từ hai ngôn ngữC++ và Java C# được miêu tả là ngôn ngữ có được sự cân bằng giữa C++,Visual Basic, Delphi và Java Công cụ hỗ trợ lập trình C# là Visual C#.NET

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ấpcác phương tiện để lập trình tự động C# có thể lập trình “mọ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

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 mangmột tên trùng nhau

Trang 9

I.2.2 Hằng

Một hằng là một biến nhưng trị của nó không thể thay đổi trong suốtthời gian thi hành chương trình Đôi lúc ta cũng cần có những giá trị bao giờcũng bấ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ững con 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

+ Hằng làm cho việc tránh lỗi dễ dàng hơn

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điều kiện lặp

+ Vòng lặp for

Cỳ phỏp:

for (initializer; condition; iterator)

Trang 10

+ 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ả

Trang 11

trả về thì return phải trả về kiễu dữ liệu này, bằng không thì câu lệnh đượcdùng khô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ác truy 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ượngriêng biệ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

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

ở ngoài lớp

+ Hàm thành phần (Function Members):

Bao g m các thu c tính v các phồm các thuộc tính và các phương thức Chúng ta sử dụng các ộc tính và các phương thức Chúng ta sử dụng các à các phương thức Chúng ta sử dụng các ương thức Chúng ta sử dụng cácng th c Chúng ta s d ng cácức Chúng ta sử dụng các ử dụng các ụng các

t khoá sau ừ khoá sau để bổ nghĩa cho một phương thức: để bổ nghĩa cho một phương thức: ổ nghĩa cho một phương thức: b ngh a cho m t phĩa cho một phương thức: ộc tính và các phương thức Chúng ta sử dụng các ương thức Chúng ta sử dụng cácng th c: ức Chúng ta sử dụng các

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ộc

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

Trang 12

Modifier Description

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 chophươ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])

+ 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 đượcgọ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

Cú pháp:

type[ ] array-name;

Trang 13

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

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 ể bổ nghĩa cho một phương thức: ị trong C#: ể bổ nghĩa cho một phương thức: đổ nghĩa cho một phương thức: i ki u implicit ể bổ nghĩa cho một phương thức: được hỗ trợ trongc h tr trongỗ trợ trong ợc hỗ trợ trongC#

Trang 14

From To

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

Câu lệnh using

Từ khoỏ using giỳp bạn giảm thiểu việc phải gừ những namespacetrước các hàm hành sự hoặc thuộc tính

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

Đa phương thức Main()

Khi một C# console hoặc ứng dụng Windows được biên dịch, theo mặc

dưới đây, và tạo ra phương thức lớp trỏ toàn bộ chương trỡnh, nếu cú nhiều

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ương

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

Trang 15

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

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 16

default if override struct void

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 17

hay 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

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.

Trang 18

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 ộc tính và các phương thức Chúng ta sử dụng các ố 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 ổ nghĩa cho một phương thức: ừ khoá sau để bổ nghĩa cho một phương thức: để bổ nghĩa cho một phương thức: cho bi t s t n t iết sự tồn tại ự tồn tại ồm các thuộc tính và các phương thức Chúng ta sử dụng các ạ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 ộc tính và các phương thức Chúng ta sử dụng các à các phương thức Chúng ta sử dụng các ủ của shortcut ộc tính và các phương thức Chúng ta sử dụng các ới đây trỡnh bày một danh sỏch đầy đủ của shortcut ổ nghĩa cho một phương thức: ừ khoá sau để bổ nghĩa cho một phương thức: ư

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 19

tí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á đó

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ộc tính và các phương thức Chúng ta sử dụng các ố lượng những bổ từ để cho biết sự tồn tại ương thức Chúng ta sử dụng cácng th c ức Chúng ta sử dụng các được hỗ trợ trong đị trong C#:c nh ngh a trong l p Object l :ĩa cho một phương thức: ới đây trỡnh bày một danh sỏch đầy đủ của shortcut à các phương thức Chúng ta sử dụng các

đối tượng

Trang 20

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

bool 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

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 21

CHƯƠNG II

LẬP TRÌNH C# VỚI CSDL

II.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 - Cac kiểu của SQL Server

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

Trang 22

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

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ể bao gồmquan hệ giữa các bảng, và nó được thiết kế cho truy xuất dữ liệukhông kết nối

 DataTable - Một kho chứa dữ liệu Một DataTable bao gồm một hoặcnhiều DataColumns, và khi được tạo ra nó sẽ có một hoặc nhiềuDataRows 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ào tên

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

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à

Trang 23

 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ụng các câu

DELETE) từ một cõu lệnh SELECT

 SqlConnection, OleDbConnection - Kết nối với cơ sở dữ liệu Giống như

 SqlDataAdapter, OleDbDataAdapter - Một lớp giữ các câu lệnh select,

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

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

 SqlTransaction, OleDbTransaction - Một giao tiếp cơ sở dữ liệu, đượcbọ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ỏclớp kết nối của.NET, OleDbConnection và SqlConnection:

Trang 24

Đ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 serverprocesses khỏc nhau chạy trờn cựng một mỏy, vỡ vậy ở đây chỳng

 uid=QSUser - Tham số này mô tả người dùng cơ sở dữ liệu Bạn cũng

 pwd=QSPassword - và đây là password cho người dùng đó NET SDK

là một bộ các cơ sở dữ liệu giống nhau, và user/password này đượcliê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ỗi tiến

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 25

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ôngcho cá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đối vớ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 26

// 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ênkhô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 khichạy trong.NET Mó sau đây sẽ giải thích cách để sử dụng giao diệnIDisposable để giải phóng tài nguyên khi thoát khỏi khối using

Trang 27

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

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ẽ đónglại giúp bạn Không gỡ cú thể thay thế được mọt bẫy ngoại lệ tốt, vỡ thế tốtnhất bạn dựng trộn lẫn hai phương thức như ví dụ sau:

Trang 28

có thể có nhiều mó trong khối lệnh mó khụng khoỏ tài nguyờn.

Thêm vào đó, nếu một ngoại lệ xảy ra bờn trong khối using, thỡ phươngthức IDisposable Dispose sẽ được gọi để bảo đảm rằng tài nguyên được giảiphóng, điều này đảm bảo rằng kết nối cơ sở dữ liệu luôn luôn được đóng lại.Điều này làm cho mó dễ đọc và luôn đảm bảo rằng kết nối luôn được đóng khimột ngoại lệ xảy ra

Cuối cựng, nếu bạn viết cỏc lớp bao bọc một tài nguyờn cú lẽ luụn thựchiện giao diện IDisposable để đóng tài nguyên Bằng cách dùng câu lệnhusing() nó luôn đảm bảo rằng tài nguyên đó sẽ được dọn dẹp

SqlCommand cmd = new SqlCommand(select, conn);

Các m nh ệnh đề SqlCommand và OleDbCommand thường được gọi là đề SqlCommand và OleDbCommand thường được gọi là SqlCommand v OleDbCommand thà các phương thức Chúng ta sử dụng các ường được gọi làng được hỗ trợ trongc g i lọi là à các phương thức Chúng ta sử dụng cácCommandType, chúng được hỗ trợ trongc dùng để bổ nghĩa cho một phương thức: đị trong C#:nh ngh a các m nh ĩa cho một phương thức: ệnh đề SqlCommand và OleDbCommand thường được gọi là đề SqlCommand và OleDbCommand thường được gọi là SQL, m tộc tính và các phương thức Chúng ta sử dụng cácstored procedure, ho c m t câu l nh SQL Sau ây l m t b ng li t kê ặc một câu lệnh SQL Sau đây là một bảng liệt kê đơn ộc tính và các phương thức Chúng ta sử dụng các ệnh đề SqlCommand và OleDbCommand thường được gọi là đ à các phương thức Chúng ta sử dụng các ộc tính và các phương thức Chúng ta sử dụng các ảng dưới đây trỡnh bày một danh sỏch đầy đủ của shortcut ệnh đề SqlCommand và OleDbCommand thường được gọi là đơng thức Chúng ta sử dụng cácn

gi n v CommandType:ảng dưới đây trỡnh bày một danh sỏch đầy đủ của shortcut ề SqlCommand và OleDbCommand thường được gọi là

Ngày đăng: 04/08/2019, 16:42

TỪ KHÓA LIÊN QUAN

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