1. Trang chủ
  2. » Công Nghệ Thông Tin

Giáo trình Lập trình Window với C# (Ngành/Nghề: Công nghệ thông tin – Trình độ: Trung cấp) - Trường CĐ Kinh tế - Kỹ thuật Vinatex TP. HCM (2021)

80 17 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 80
Dung lượng 3,45 MB

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

Cấu trúc

  • Chương I FORM VÀ CÁC ĐỊNH DẠNG FORM (11)
    • I. GIỚI THIỆU WINDOWS FORMS (11)
    • II. CÁC LOẠI FORMS (12)
    • III. CÁC THUỘC TÍNH VÀ BIẾN CỐ VÀ PHƯƠNG THỨC CỦA FORM (14)
  • Chương II CÁC ĐIỀU KHIỂN THÔNG THƯỜNG (17)
    • I. NHÓM LABEL, TEXTBOX (17)
    • II. NHÓM COMBOBOX, LISTBOX (18)
    • III. NHÓM CHECKBOX, RADIOBUTTON (22)
    • IV. BUTTON (24)
  • Chương III CÁC ĐIỀU KHIỂN ĐẶC BIỆT (27)
    • I. ĐIỀU KHIỂN TOOLTIP (27)
    • II. ĐIỀU KHIỂN ERRORPROVIDER (29)
    • III. ĐIỀU KHIỂN LISTVIEW (30)
    • IV. ĐIỀU KHIỂN TREEVIEW (32)
  • Chương IV CÁC ĐIỀU KHIỂN CHỨA ĐIỀU KHIỂN KHÁC (37)
    • I. ĐIỀU KHIỂN GROUPBOX (37)
    • II. ĐIỀU KHIỂN TABCONTROL (38)
    • III. ĐIỀU KHIỂN PANEL (41)
  • Chương V KẾT NỐI CƠ SỞ DỮ LIỆU VỚI ADO.NET (43)
    • I. KHÁI NIỆM (43)
    • II. TẠO KẾT NỐI-VẬN CHUYỂN DỮ LIỆU (48)
    • III. ĐƯA DỮ LIỆU VÀO CÁC ĐỐI TƯỢNG (49)
    • IV. CÁC THAO TÁC XÓA, THÊM, SỬA (57)
  • Chương VI CÁC ĐIỀU KHIỂN XÂY DỰNG MENU (66)
    • I. ĐIỂU KHIỂN MENUSTRIP (66)
    • II. ĐIỀU KHIỂN CONTEXTMENUSTRIP (68)
  • Chương VII CÁC ĐIỀU KHIỂN DIALOG (70)
    • I. ĐIỀU KHIỂN COLOR (70)
    • II. ĐIỀU KHIỂN OPENFILEDIALOG (71)
    • III. ĐIỀU KHIỂN SAVEFILEDIALOG (74)
    • IV. ĐIỀU KHIỂN FONTDIALOG (75)
    • V. ĐIỀU KHIỂN FOLDERBROWSERDIALOG (76)
  • TÀI LIỆU THAM KHẢO (80)

Nội dung

(NB) Cấu trúc của giáo trình gồm 7 chương với những nội dung chính sau: Form và các định dạng Form bao gồm các thanh thực đơn Project,thanh công cụ, các loại form, các thuộc tính và biến cố trong form; các điều khiển thông thường bao gồm các nhóm Label, Textbox, nhóm combobox, listbox, nhóm các checkbox, Radio button; các điều khiển đặc biệt bao gồm các Tooltip, các điều khiển Errorprovider, listview, treeview; điều khiển Groupbox, điều khiển Tabcontrol, panel; kết nội cơ sở dữ liệu với ADO.net bao gồm các khái niệm về ADO.NET; các điều khiển xây dựng menu bao gồm các điều khiển menustrip, contextmenustrip; các điều khiển Dialog.

FORM VÀ CÁC ĐỊNH DẠNG FORM

GIỚI THIỆU WINDOWS FORMS

Dùng tạo ứng dụng giao diện Windows chạy trên máy để bàn có cài NET Framwork 2.0

− System.Windows.Form: cung các chức năng tạo các control, thanh công cụ, thanh thực đơn, trình bày dữ liệu liên kết, kiểm tra dữ liệu nhập, sử dụng các cửa sổ hội thoại có sẵn của windows

− System.Drawing: cung cấp chức năng cơ bản về đồ họa dùng định dạng form

− System.Data: cung cấp chức năng trình bày và thao tác dữ liệu trong ADO.NET

− System.Xml: xử lý, trình bày dữ liệu dạng XML Để sử dụng các không gian tên khác, chọn thực đơn Project/ Add Reference

Khi tạo mới project, đối tượng Form.Form1 được tạo ra gồm 3 phần (3 file):

1 Designer.cs : khi tạo giao diện sẽ phát sinh mã lệnh trong file này

2 Form1.cs : chứa mã lệnh do bạn tạo ra Khi tạo biến cố cho một điều khiển trên form thì cũng phát sinh khai báo này trong Designer.cs Vì vậy nếu xóa đoạn mã của biến cố trong file cs thì lỗi có thể phát sinh, trừ khi bạn xóa phần khai báo của chúng trong Designer.cs

3 Form1.Resx : được tạo ra khi bạn tạo biến hay phương thức(không nên thay đổi trong file này, dễ gây lỗi chương trình khó sửa) Các thực đơn chính:

− Project/Add Windows Form : thêm form mới

− Project /Add Class : thêm class

− Project /Add New Item : thêm đối tượng mới

− Project / Add Exsiting Item : thêm đối tượng có sẵn

− Project /Exclude From Project : gỡ đối tượng khỏi project nhưng không xóa file trong thư mục ứng dụng

− Project /Delete : gỡ đối tượng khỏi project và xóa file trong thư mục ứng dụng

Gồm các nhóm điều khiển (controls) sau:

− Common Control : TextBox, Button, ComboBox, ListBox, TreeView…

− Menus v à Toolbars : tạo thực đơn

− Dialogs: các controls làm việc với file, font, color…

− Data : thao tác dữ liệu trong ADO.NET

− Components : làm việc với hệ thống và kiểm soát dữ liệu nhập

− Containers : các controls chứa các controls khác

− Crystal Report : nhúng đối tượng Crystal Report.

CÁC LOẠI FORMS

− MDI Form: dùng đặt các form khác bên trong

− Child Form: form con đặt trong MDI form

− Normal Form: không nằm trong MDI form

Dùng đặt các form khác bên trong Có thể thực hiện khi thiết kế giao diện hoặc dùng code

− Cách 1: khi thiết kế giao diện, gán thuộc tính IsMdiContainer =true, Form1 sẽ chuyển màu xám

Ví dụ 2: khởi tạo form2, khai báo form2 là MDIForm

Phương thức Show dùng mở form (nạp form)

Trong code trên, form2 sẽ là dạng form chứa (có nền xám) khi được gọi

Ví dụ 3: code tạo mới, khởi tạo form dạng MDI

Là form con đặt trong MDI form

− Thuộc tính MdiParent : không xuất hiện trong cửa sổ thuộc tính nên phải dùng code

Ví dụ 4: khai báo form3 là form con của form1, mở form3

Chú ý : không dùng phương thức ShowDialog để mở childform

Khi click nút Form3 sẽ được form3 nằm trong form1:

Là dạng form bình thường (đã học)

Sau khi tạo form thì code mở form như sau:

Ví dụ 6: dùng ShowDialog , form mở dạng modal, không cho phép bạn chuyển sang làm việc với form đã mở trước đó trừ khi form modal đóng lại

Ví dụ 7: dùng code tạo mới và khởi tạo form Tạo biến cố click lên form.

CÁC THUỘC TÍNH VÀ BIẾN CỐ VÀ PHƯƠNG THỨC CỦA FORM

− Name : dùng để nhận dạng duy nhất của form trong project

− Text: dùng để trình bày chuỗi trên thanh tiêu đề

− ShowIcon: dùng hiện biểu tượng chương trình, hình được chọn trong thuộc tính Icon

− ShowInTaskbar: có cho hiển thị trên taskbar hay không

− Opacity: chọn mức độ trong suốt của form để thấy được các biểu tượng của desktop

− StartPosition: vị trí nạp form trên màn hình

− WindowsState: nạp form ở một trong ba trạng thái: normal; minimized; maximized

− ControlBox: có cho hiển thị controlbox hay không

− AcceptButton: chọn nút mặc định được kích hoạt khi nhấn Enter

− CancelButton: chọn nút mặc định được kích hoạt khi nhấn ESC

− MdiParrent: chỉ định form cha

2 Các biến cố của form

− Load: xảy ra trước khi form được hiển thị lần đầu

− Click: xảy ra khi click lên form

− FormClosed: xảy ra khi form đã đóng

− FormClosing: xảy ra khi form đang đóng, thường sử dụng để người dùng xác nhận có chắc chắn đóng form

− Activated: xảy ra khi form được kích hoạt bằng mã hoặc do tác động của người dùng

− KeyPress: xảy ra khi một phím được nhấn

(phải gán form.KeyPreview=True)

− Resize: xảy ra khi kích thước form thay đổi

− Close: dùng đóng form, nếu form được đóng là duy nhất thì chương trình tự động đóng Cách gọi: this.Close

− Hide: dùng che dấu form đang mở Cách gọi: this.Hide

− Activate: dùng kích hoạt form

− Show: nạp form lên màn hình Cách gọi:

Form frm=new Form (); frm.Show();

− ShowDialog: nạp form lên màn hình dạng modal

Khi sử dụng ShowDialog để nap form lên màn hình mà trước đó có form đang kích hoạt, ta không thể quay trở lại form trước đó trừ khi kết thúc form này Cách gọi:

Form frm=new Form (); frm.ShowDialog();

1 Có mấy cách để tạo một normal form?

2 Phân biệt 2 phương thức Show và ShowDialog

Bài 1: Tạo MDI form gồm 2 button gọi 2 child form, trong đó child form1 được tạo sẵn, child form2 được tạo mới khi được gọi.

CÁC ĐIỀU KHIỂN THÔNG THƯỜNG

NHÓM LABEL, TEXTBOX

Trình bày tiêu đề trên các điều khiển

Thuộc tính text (chuỗi hiển thị)

Là label cho phép kích hoạt đến địa chỉ internet hay email

− Thuộc tính LinkArea : xác định giới hạn chuỗi làm liên kết

− Các biến cố: LinkClicked, DoubleClick

Khi clich vào link, sẽ mở trang liên kết

-Các thuộc tính thường dùng: Text (chuỗi hiển thị), Enabled (trạng thái hoạt động),

Maxlength (độ dài chuỗi tối đa), Multiline (được tràn xuống dòng mới nếu chuỗi quá dài),Scrollbar (có thanh trượt)

NHÓM COMBOBOX, LISTBOX

Dùng trình bày danh sách phần tử cho phép người sử dụng chọn một hay nhiều phần tử trong danh sách đó

Dùng trình bày danh sách phần tử là chuỗi đối tượng , gồm giá trị và nhãn có thể thay đổi được hay thêm mới phần tử

1.1 Các thu ộ c tính, ph ươ ng th ứ c :

DropDownStyle kiểu trình bày danh sách

DropDown cho phép thêm mới chuỗi

DropDownList chỉ cho chọn trong danh sách

Items danh sách các phần tử của danh sách

SelectedItem gán hay lấy giá trị của phần tử đang chọn

SelectedIndex gán hay lấy giá trị chỉ mục ứng với phần tử đang chọn

Add("chuỗi") Thêm một mục giá trị là "chuỗi"

ToString() Trả về chuỗi ký tự được chọn

1.2.1 Tạo ComboBox và danh sách các phần tử khi thiết kế giao diện:

1.2.2 Tạo danh sách các phần tử từ mảng một chiều

Ta tạo mảng rồi gán cho thuộc tính DataSource của Combobox

Chú ý: thêm using System.IO

1.2.3 Khai báo và khởi tạo đối tượng ComboBox bằng code click

.Items.Add ("Chuỗi")

− Lấy giá trị một mục đang chọn:

Dùng để hiển thị một danh sách các lựa chọn

2.1 Các thuộc tính, phương thức :

Items Các mục giá trị trong ListBox

SelectedItem Gán hay lấy giá trị của phần tử đang chọn

SelectionMode Cho phép chọn một hay nhiều phần tử một lúc

Sort Sắp thứ tự danh sách

Add("chuỗi") Thêm một mục giá trị là "chuỗi"

ToString() Trả về chuỗi ký tự được chọn

MouseClick Click chọn một mục

* Khởi tạo một ứng dụng Windows Forms Application, như sau:

- ListBox lstWeb chứa các giá trị:

+ Tuổi trẻ, Thanh niên, VNExpress, Dân trí, Công an

-Hướng dẫn: vào thuộc tính Items tạo danh sách các website

.Items.Add ("Chuỗi")

− Lấy giá trị một mục đang chọn:

* Cải tiến ví dụ trên: Ta có thể dùng code đưa các giá trị của lstWeb trong biến cố

Thiết kế lại form như hình 2.6

+ Nhắp đúp chuột vào nền form, rồi gõ đoạn code this.lstWeb.Items.Add("Tuổi trẻ"); this.lstWeb.Items.Add("Thanh niên"); this.lstWeb.Items.Add("VNExpress"); this.lstWeb.Items.Add("Dân trí"); this.lstWeb.Items.Add("Công an"); this.lstWeb.SelectedItem = "Tuổi trẻ";

- Nhắp đúp vào button Ok rồi thêm đoạn code sau: this.txtKQ.Text = "Bạn đã chọn website "; this.txtKQ.Text += this.lstWeb.SelectedItem.ToString();

- Nhắp đúp vào button Reset rồi thêm đoạn code sau: this.txtKQ.ResetText();

NHÓM CHECKBOX, RADIOBUTTON

Cho phép người dùng chọn hoặc không chọn

Checked Không có dấu check (False) / Có dấu check (True)

Biến cố Click Click chọn một điều khiển RadioButton

Ví dụ 1: duyệt các điều khiển trên form, nếu checkBox nào được chọn thì thông báo ra

Ví dụ 2: sửa ví dụ 1, khi chọn mục “Tờ báo” thì xuất hiện danh sách báo tờ: sử dụng biến cố CheckChanged

Khi chọn mục “Tờ báo” thì xuất hiện danh sách báo tờ:

Dùng để chọn một trong các lựa chọn trong danh sách

Checked Không có dấu chọn (False) / Có dấu chọn (True)

Biến cố Click Click chọn một điều khiển RadioButton

Hướng dẫn: sử dụng thuộc tính checked của RadioButton, và hàm ToLower(), ToUpper() Ví dụ: string hoten=this.txtHoTen.Text.Trim();

BUTTON

Dùng để thực thi lệnh Cho phép người sử dụng dùng chuột để nhấn, phím Enter hay phím Spacebar nếu điều khiển này đang có focus

Text Chuỗi hiển thị trên Button

Biến cố click Thực thi lệnh

Có thể gán tên Button cho thuộc tính AcceptButton hay CancelButton của form để cho phép người dùng nhấn phím Enter hoặc Esc thay thế cho nút

Hình 2.12 BÀI TẬP CHƯƠNG II

1 Trong các điều khiển label, textBox , thuộc tính nào chứa chuỗi hiển thị?

2 Trong các điều khiển ComboBox , ListBox , thuộc tính nào cho gán hay lấy giá trị của phần tử đang chọn?

3 Nêu cú pháp để thêm phần tử vào ComboBox , ListBox

4 Trong các điều khiển Checkbox, Radiobutton, thuộc tính nào cho biết điều khiển được chọn hay bỏ chọn?

Bài 1: Tạo form có textBox cho phép thay đổi màu chữ bằng radiobutton Thay đổi kiểu chữ (đậm, nghiêng, gạch dưới) bằng checkbox

✓ Nhấn Radiobutton Red, Green thì đổi màu chữ có màu tương ứng với Radiobutton phù hợp private void radRed_CheckedChanged(object sender, EventArgs e)

Nhấn các CheckBox chữ đậm, nghiêng… thì đổi font chữ

Txt1.Font = new Font(Txt1.Font.Name,Txt1.Font.Size, Txt1.Font.Style ^ FontStyle.Bold); }

Bài 2: Sử dụng điều khiển linklabel liên kết đến một website

Bài 3:Dùng combobox đổi màu nền form

Lấy giá trị trong combobox cboColor.Text

Gán màu nền của form : this.BackColor= Màu

Ví dụ: this.BackColor = Color.FromName(cboColor.Text);

CÁC ĐIỀU KHIỂN ĐẶC BIỆT

ĐIỀU KHIỂN TOOLTIP

ToolTip trình bày cửa sổ nhỏ bật lên với diễn giải ngắn gọn khi người dùng rê chuột lên điều khiển Bạn sử dụng điều khiển này như tiện ích hỗ trợ cách sử dụng các dữ liệu trên form

AutomaticDelay Thời gian (1/1000 giây) áp dụng cho AutoPopDelay, InitalDelay,

ReshowDelay AutoPopDelay Thời gian xuất hiện cửa sổ ToolTip trên form

InitalDelay Thời gian tính từ khi rê chuột lên điều khiển đến lúc xuất hiện ToolTip ReshowDelay Thời gian duy trì cửa sổ ToolTip kể từ khi rê chuột ra khỏi điều khiển ToolTipIcon Biểu tượng của ToolTip

ToolTipTitle Tiêu đề của ToolTip

2 Tạo ToolTip bằng giao diện

Ví dụ thiết kế form đăng nhập, có hướng dẫn người dùng

Từ cửa sổ TollBox, kéo điều khiển ToolTip vào form, lập tức xuất hiện thuộc tính ToolTip on

ToolTip 1 trên cửa sổ thuộc tính của mỗi điều khiển khác trên form Chọn textbox Password ta thấy:

Thêm chuỗi nhắc vào thuộc tính này, chạy thử, rê chuột lên txtPassword ta thấy cửa sổ ToolTip xuất hiện :

SetToolTip Tạo chuỗi nhắc cho một điều khiển, tương tự như khi tạo thuộc tính ToolTip on ToolTip1 RemoveAll Loại bỏ tất cả các chuỗi nhắc của các điều khiển trên form

ĐIỀU KHIỂN ERRORPROVIDER

Điều khiển ErrorProvider cung cấp giao tiếp với người dùng thông tin lỗi của điều khiển trên form Thường sử dụng để kiểm tra giá trị nhập

Từ cửa sổ ToolBox, kéo điều khiển ErrorProvider vào form để áp dụng cho các điều khiển trên form

Nếu có chuỗi trình bày thông tin lỗi thì xuất hiện biểu tượng bên cạnh điều khiển, khi nhập không hợp lệ thì biểu tượng nhấp nháy

BlinkRate Thời gian giữa hai lần nhấp nháy(1/1000 giây)

2 Tạo ErrorProvider bằng giao diệnTừ cửa sổ ToolBox, kéo điều khiển ErrorProvider vào form

Chọn txtUser, gán chuỗi nhắc cho thuộc tính Error on ErrorProvider

Khi người dùng rê chuột lên biểu tượng thì xuất hiện lời nhắc:

Khi tạo ErrorProvider bằng giao diện thì biểu tượng luôn xuất hiện, nếu muốn biểu tượng chỉ xuất hiện khi không thỏa mãn điều kiện thì dùng code trong biến cố Validated của điều khiển

SetError Tạo chuỗi nhắc cho một điều khiển, tương tự như khi tạo thuộc tính

Clear Loại bỏ tất cả các chuỗi nhắc của các điều khiển trên form

− Khai báo ErrorProvider ở mức class

− Code trong biến cố txtPassword_Validated

Khi chạy chương trình, nếu người dùng chuyển con nháy rời khỏi điều khiển txtPassword mà không nhập gì thì biểu tượng sẽ xuất hiện nhấp nháy.

ĐIỀU KHIỂN LISTVIEW

Điều khiển Listview dùng để trình bày phần tử dạng danh sách

Columns Khai báo số cột

FullRowSelect Cho phép chọn cả dòng

View Chọn chế độ trình bày

SelectedItems Phần tử được chọn

2 Liệt kê danh sách tập tin

Khai báo sử dụng namespace System.IO

Khai báo liệt kê danh sách tập tin trong thư mục C:\Windows\

3 Liệt kê danh sách thư mục

ĐIỀU KHIỂN TREEVIEW

Điều khiển TreeView dùng trình bày danh sách phần tử phân cấp theo từng nút hình cây

CheckBoxes Xuất hiện CheckBox bên cạnh từng nút trên điều khiển TreeView

Nodes Khai báo số nút

ShowLine True, cho phép đường viền ứng với từng nút

ShowPlusMinus True, xuất hiện biểu tượng dấu + hoặc – trên mỗi nút

ShowRootLine True, cho phép trình bày nút gốc

ImageList Đối tượng ImageList chứa danh sách các image theo số chỉ mục từ 0-n-1 (n là số lượng image) dùng trong trường hợp thuộc tính View là LargeIcon

ImageIndex Chỉ mục của image

Selected ImageIndex Chỉ mục của image được chọn

2 Liệt kê danh sách ổ đĩa

Thiết kế form rồi thêm điều khiển TreeView

Sử dụng đối tượng Directory để liệt kê danh sách thư mục

Gọi phương thức GetFolder trong phương thức GetDisk

Gọi phương thức GetFile trong phương thức GetFolder

• Khai triển :Sử dụng phương thức ExpandAll()

• Thu gọn: sử dụng phương thức CollapseAll()

AfterSelect Xảy ra sau khi người dùng click trên nút của điều khiển

TreeView Click Xảy ra khi người dùng click trên nút của điều khiển TreeView

1 Khi chương trình vừa thực thi a Form được hiển thị giữa màn hình (lưu ý thuộc tính StartPosition) b Các đối tượng được “neo” sao cho khi người dùng thay đổi kích thước form thì các đối tượng được resize kích thước sao cho “dễ nhìn” (thuộc tính Anchor) c picTurnOn được hiển thị, picTurnOff được ẩn ngay bên dưới picTurnOn

Khi người dùng đưa chuột vào picTurnOn sẽ xuất hiện tip “Click me to Turn OFF the

Light!”, và ngược lại trên picTurnOFF d Hiện tên mặc định vào ô Name e Lable ngay bên dưới pictureBox hiển thị thông báo “Jack Turn Off the Light ,please!”

2 Khi người dùng Click lên picture nào thì picture đó sẽ phải ẩn đi, picture còn lại xuất hiện, đồng thời thay đổi nội dung trên label phù hợp

3 Nút Exit cho phép đóng ứng dụng

4 Sau khi thiết kế xong, đặt 2 PictureBox chồng lên nhau để xem hiệu ứng

1) Thiết kế form như hình trên a) Tạo 2 PictureBox cùng kích cỡ, đưa vào 2 hình ảnh đèn sáng và tắt và đặt chúng chồng lên nhau b) Vào ToolBox tìm component ToolTip rồi kéo ra form chính c) Chọn hình đèn t ắt, vào property ToolTip on toolTip1 và gõ câu lệnh “Click me to

Turn ON the Light!” và làm ngược lại với hình còn lại d) Để hiện tên mặc định vào ô Name, trong sự kiện Load của form, gõ vào câu lệnh sau: txtName.Text = "Jack";

2) Ta vào sự kiện Click của picTurnOff , gõ đoạn code:

//thuộc tính Visible dùng để ẩn/hiện 1 đối tượng picOn.Visible = true; picOff.Visible = false; lblMessage.Text = txtName.Text + " Turn off the Light, please!";

Làm ngược lại với picTurnOn

Tạo form liệt kê danh sách tập tin ổ đĩa

Tạo form trình bày cây thư mục ổ đĩa

CÁC ĐIỀU KHIỂN CHỨA ĐIỀU KHIỂN KHÁC

ĐIỀU KHIỂN GROUPBOX

Điều khiển GroupBox là khung dùng để nhóm các điều khiển khác

Ngoài ra, GroupBox chứa các RadioButton thành nhóm mà người dùng có thể chọn một trong các điều khiển đó

Text Tiêu đề của GroupBox

Enabled Nếu là false thì tất cả các điều khiển trong GroupBox sẽ bị vô hiệu hóa

AutoSizeMode GrowOnly: tự động mở lớn kích thước cho phù hợp các điều khiển bên trong

2.1 Hiển thị, che giấu điều khiển GroupBox

GroupBox1.Visible=true; // hiển thị

2.2 Khai báo đối tượng GroupBox

Khai báo đối tượng GroupBox cùng thuộc tính Sau đó khai báo và khởi tạo từng RadioButton và dùng Controls.Add để thêm RadioButton vào GroupBox Cuối cùng thêm GroupBox này vào form.

ĐIỀU KHIỂN TABCONTROL

Điều khiển TabControl chứa danh sách đối tượng TabPage , cho phép thêm các điều khiển khác trong từng TabPage

Mặc định TabControl có 2 TabPage, có thể thêm TabPage bằng cách sử dụng thuộc tính

TabPage Collection từ cửa sổ thuộc tính, hoặc dùng phương thức Add

MultiLine Cho phép danh sách tab trên nhiều hàng

TabPages Collection chứa danh sách các điều khiển tabPage

Selected Xảy ra sau khi người dùng click trên tabPage

3 Liệt kê danh sách ổ đĩa

Ta tạo phương thức Drive sử dụng đối tượng Directory

Trong tabPage sử dụng Listview

*Tham khảo cách trình bày thông tin máy tính

Hình 4.5 using N=System.Windows.Forms.SystemInformation;

ĐIỀU KHIỂN PANEL

Điều khiển Panel cho phép chứa các điều khiển khác như: button, RadioButton, CheckBox… thường dùng để chia vùng hiển thị trên form cho rõ ràng

Enabled Nếu là false thì vô hiệu hóa tất cả các điều khiển nằm trong panel

2 Che giấu, xuất hiện Panel

Khi click New thì giấu panel 1 chứa Listview , xuất hiện panel2 “New Database”

1 Group box thường dùng chứa các điều khiển nào?

2 Thuộc tính nào dùng che dấu hoặc hiển thị groupbox?

Bài tập :Tạo một form gồm dùng Tabcontrol gồm 2 tab, một liệt kê danh sách ổ đĩa, một trình bày thông tin máy tính (tên máy, tên user)

KẾT NỐI CƠ SỞ DỮ LIỆU VỚI ADO.NET

KHÁI NIỆM

1 Giới thiệu về ADO.NET

ADO.NET là một tập hợp hướng đối tượng các thư viện cho phép bạn tương tác với nguồn dữ liệu (data sources) Thường thì nguồn dữ liệu là một cơ sở dữ liệu, nhưng có thể cũng là 1 tập tin Text, bảng tính Excel hoặc 1 tập tin XML.

Có rất nhiều nguồn cơ sở dữ liệu khác như từ Microsoft SQL Server, Microsoft Access, Oracle, Borland Interbase, DB2 của IBM Trong chương này, chỉ tập trung vào cơ sở dữ liệu SQL Server

2 Các đối tượng thường sử dụng

− SqlCommand : thực thi SQL queries, câu lệnh hoặc lưu trữ thủ tục

− SqlConnection : tạo kết nối tới SQL Server

− SqlDataAdapter : bạn quản lý dữ liệu trong chế độ ngắt kết nối, cầu nối trung gian giữa dataset và data source

− SqlReader : cung cấp một data stream tới kết quả

− SqlError : lưu trữ thông tin về lỗi và cảnh cáo (warning)

− SqlException : các ngoại lệ trong trường hợp SQL Server lỗi và cảnh báo

− SqlParameter : tham sô biên command

Là đối tượng kết nối với cơ sở dữ liệu Kết nối này nhằm xác định máy chủ database server, tên cơ sở dữ liệu Database name, tên người dùng user name, mật khẩu password, và các thông số khác được yêu cầu để kết nối với cơ sở dữ liệu

Bảng 5.1 : thuộc tính và phương thức hay sử dụng của một đối tượng kết nối

ConnectionString Cung cấp thông tin như datasource, tên cơ sở dữ liệu, được sử dụng để thiết lập kết nối với một cơ sở dữ liệu Open() Mở một kết nói với datasource được khai báo tại ConnectionString Close() Được sử dụng để đóng kết nối với data source

State Trạng thái đóng hay mở của kết nối

Quá trình tương tác với database cần phải biết hành động nào bạn muốn xảy ra Điều này được thực hiện bởi đối tượng command Bạn dùng đối tượng command để gửi một câu lệnh SQL tới database Một đối tượng command dùng một đối tượng connection để xác định database nào sẽ được truy xuất

5 SqlDataAdapter Đôi lúc dữ liệu mà bạn làm việc là read-only và bạn ít khi cần thay đổi dữ liệu nguồn Vài trường hợp cần lưu trữ tạm dữ liệu trong bộ nhớ để hạn chế truy xuất đến database Data adapter làm điều này dễ dàng bằng cách giúp bạn quản lý dữ liệu trong chế độ ngắt kết nối Data adapter sẽ đổ vào DataSet khi đọc dữ liệu và thực hiện thay đổi dữ liệu một lượt vào database

Data adapter chứa một tham chiếu đến đối tượng connection và mở/đóng kết nối tự động khi đọc và ghi dữ liệu vào database

Data adapter chứa đối tượng command cho những thao tác SELECT, INSERT, UPDATE và DELETE trên dữ liệu

Bạn sẽ có một data adapter được định nghĩa cho mỗi table trong một DataSet và nó sẽ quản lý các giao tiếp với database cho bạn Tất cả những gì bạn cần làm là chỉ cho data adapter khi nào nạp hoặc ghi vào database

6 DataSet Đối tượng DataSet là một thể hiện của dữ liệu trong bộ nhớ Chúng chứa nhiều đối tượng DataTable, bên trong DataTable lại có nhiều column và row, giống như các database table thông thường Bạn thậm chí có thể định nghĩa dữ liệu giữa các table để tạo các quan hệ parent-child DataSet được thiết kế đặc biệt để giúp quản lý dữ liệu trong bộ nhớ và để hỗ trợ các thao tác không cần kết nối (disconnected) trên dữ liệu

7 Chuẩn bị cơ sở dữ liệu trong Sql Server:

- Tên máy được sử dụng (SERVERNAME) là USER-PC

- Database được sử dụng (DATABASENAME) là quanlynhansu có 1 table donvi

➢ Tạo cơ sở dữ liệu quanlynhansu trong SQL Server

• Trong cửa sổ Object Explorer, chọn Database/ New Database

• Mục Databases name , gỏ tên cơ sở dữ liệu sẽ tạo:

• Tên cơ sở dữ liệu xuất hiện trong nhóm Database

• Khai triển cơ sở dữ liệu, chọn Table/ New Table

• Gỏ các thông tin thiết kế bảng như tên cột (Column Name), kiểu dữ liệu (Data type), cho phép rỗng hay không

• Đóng cửa sổ thiết kế, đặt tên và lưu bảng

• Để nhập dữ liệu, chọn tên bảng, chọn Edit Top 200 Rows

TẠO KẾT NỐI-VẬN CHUYỂN DỮ LIỆU

1.Tạo kết nối, vận chuyễn dữ liệu

Tạo project trong Windows Form

➢ Khai báo namespace sử dụng using System.Data.SqlClient;

Mục tiêu của hàm này là khởi tạo kết nối đến một cơ sở dữ liệu

Dùng lệnh SELECT, cú pháp:

SELECT [ALL | DISTINCT][TOP n] danh_sách_chọn

FROM danh_sách_bảng [ | khung_nhìn]

[GROUP BY danh_sách_cột]

[ORDER BY cột_sắp_xếp]

[COMPUTE danh_sách_hàm_gộp [BY danh_sách_cột]]

Chú ý: Các thành phần trong câu lệnh SELECT phải được sử dụng theo đúng thứ tự trên Đưa hàm vào biến cố Form-Load()

Khi không sử dụng kết nối nữa, ví dụ như đóng chương trình, ta cần giải phóng tài nguyên

Chuyển Form về chế độ Design View Ở cửa sổ properties của form đang chọn, click Events

Nhắp đúp lên sự kiện FormClosing

ĐƯA DỮ LIỆU VÀO CÁC ĐỐI TƯỢNG

Dữ liệu cần danh sách hiển thị trên form Trong phần này ta sử dụng các textBox để hiển thị các thông tin mã đơn vị, tên đơn vị và ghi chú

Ta sử dụng đối tượng DataGridView1 để hiển thị các dòng thông tin trong bảng donvi

1 Đưa dữ liệu vào DataGridView

Tạo DataGridView1 , chọn Edit Columns như hình dưới:

• Nhấn nút Add để tạo các cột trong DataGridView1

• Nhập Name trùng với tên cột trong bảng donvi của cơ sở dữ liệu quanlybanhang

• Lần lượt tạo các cột cần thể hiện

• Chọn từng cột, đặt thuộc tính DataPropertyName trùng với ( Name ) của cột

• Form hiển thị như hình 5.17:

➢ Hiển thị dữ liệu trong DataGridView1

Trong hàm ketnoiCSDL ta thêm dòng lệnh dataGridView1.DataSource = dt;

• Để click chọn cả dòng, tạo hàm sau:

Lúc này dữ liệu chỉ trình bày trong danh sách DataGridView mà chưa lên textBox

2 Đưa dữ liệu từ DataGridView lên textBox

Ta viết hàm chuyển thông tin từng dòng trong DataGridView lên textBox Đặt hàm vào biến cố Form-Load()

Chạy thử ta thấy như hình 5.20

3 Đưa dữ liệu vào ComboBox trong DataGridView

Ví dụ muốn trình bày mã khách hàng dạng ComboBox trong một hóa đơn

4 Đưa dữ liệu lên ListBox

Thiết kế form như sau:

// Chuỗi kết nối string strConnectionString = "Data Source=PC-PC;Initial

Catalog=QuanLyBanHang;Integrated Security=True";

// Đối tượng đưa dữ liệu vào DataTable dtThanhPho

// Đối tượng hiển thị dữ liệu lên Form

// Khởi động connection conn = new SqlConnection(strConnectionString);

// Vận chuyển dữ liệu lên DataTable dtThanhPho daThanhPho = new SqlDataAdapter("SELECT * FROM THANHPHO", conn); dtThanhPho = new DataTable(); dtThanhPho.Clear(); daThanhPho.Fill(dtThanhPho);

// Đưa dữ liệu lên ListBox this.lstThanhPho.DataSource = dtThanhPho; this.lstThanhPho.DisplayMember = "TenThanhPho"; this.lstThanhPho.ValueMember = "ThanhPho";

MessageBox.Show("Không lấy được nội dung trong table THANHPHO Lỗi rồi!!!"); }

Tham khảo cách lấy chuỗi lệnh SqlConnection("Data Source=USER-PC;Initial

Catalog=quanlynhansu;Integrated Security=True")

• Chọn Data Connection/ Add Connection

• Gỏ tên máy, Chọn tên cơ sở dữ liệu

• Chọn tên cơ sở dữ liệu

• Nhấn Text Connection để kiểm tra kết nối

• Chuỗi kết nối là giá trị của thuộc tính Connection String được hiển thị trong cửa sổ Properties

CÁC THAO TÁC XÓA, THÊM, SỬA

1 Minh họa giao diện chương trình cho phép cập nhật cơ sở dữ liệu

Từ chương trình trên, bổ sung giao diện như sau: Đặt các textBox trong Panel1

1) Thiết kế không cho người dùng thao tác (Enabled = false) khi load form:

+Đưa dữ liệu từ bảng donvi lên DataGridView1 có bẫy lỗi

2) Điều chỉnh lại thuộc tính (cửa sổ Properties) của DataGridView1

+ Xóa rỗng các textBox trong Panel

+ Cho phép nhập thông tin vào các textBox trên Panel

+ Không cho phép thao tác trên các Button: Thêm, Sửa, Xóa

+ Cho phép thao tác trên các Button: Lưu, Hủy

+ Đưa thông tin của record đang được chọn trong DataGridView1 lên Panel

+ Cho phép nhập / sửa thông tin trong các textBox trên Panel

+ Không cho phép thao tác trên các Button: Thêm, Sửa, Xóa

+ Cho phép thao tác trên các Button: Lưu, Hủy

+ Insert / Update thông tin khách hàng từ Panel vào bảng donvi

6) Nhắp vào Button ReLoad: load lại nội dung bảng donvi lên DataGridView1

+ Xóa rỗng các textBox trong Panel

+ Không cho phép nhập thông tin vào các textBox trên Panel

➢ Yêu cầu 1: Sửa hàm Load_Form

➢ Yêu cầu 2: thực hiện trong cửa sổ Properties

Mức class, bổ sung khai báo biến như sau: bool Them;// Khai báo biến kiểm tra việc Thêm hay Sửa dữ liệu

Sau khi thêm hoặc sửa thông tin trên các textBox, ta phải lưu lại thay đổi trên bảng donvi của cơ sở dữ liệu vậy thao tác ở đây có thể là thêm mới hoặc sửa thông tin record

Dưới đây là cách thêm mới record vào bảng

Dùng lệnh INSERT, cú pháp:

INSERT INTO tên_bảng [(danh_sách_cột)] VALUES (danh_sách_trị)

• Ví dụ 1: thêm một dòng dữ liệu vào bảng DONVI

INSERT INTO donvi VALUES ('px3', ‘Phân xưởng 3’, 'cs2')

- Ví dụ 2: thêm một dòng dữ liệu vào bảng DONVI nhưng chỉ điền dữ liệu vào một số cột INSERT INTO donvi (madonvi, tendonvi)

+ Mở kết nối đã tạo trước đó

+ Tạo đối tượng thi hành lệnh SqlCommand Khai báo kết nối

(connection) và kiểu lệnh (CommandType) cho đối tượng SqlCommand + Viết lệnh Insert

+ Nạp lại dữ liệu vào DataGridView

3 Sửa record rồi cập nhật vào bảng

Dùng lệnh UPDATE, cú pháp:

SET tên_cột = biểu_thức [ , , tên_cột_k = biểu_thức_k]

- Ví dụ 1: sửa ghi chú của phân xưởng 4 là “cơ sở 1”

UPDATE donvi SET ghichu = ‘cơ sở 1’

- Ví dụ 2: cập nhật giá trị cho field THANHTIEN (thành tiền) trong bảng

NHATKYBANHANG theo công thức THANHTIEN = SOLUONG * DONGIA

SET thanhtien = soluong * MATHANG.dongia

WHERE nhatkybanhang.mahang = MATHANG.mahang

Dùng lệnh DELETE, cú pháp:

Ví dụ: xoá khỏi bảng donvi các phòng tại cơ sở 2

➢ Thêm button Xóa vào form rồi viết mã lệnh gồm các bước sau:

• Mở kết nối đã tạo trước đó

• Tạo đối tượng thi hành lệnh SqlCommand Khai báo kết nối (connection) và kiểu lệnh (CommandType) cho đối tượng SqlCommand

• Lấy chỉ số (index) của record đang chọn→ lấy giá trị ô sẽ sử dụng trong lệnh xóa

1 Trong SQL, tạo bảng KETQUA gồm các trường: MAHS, HOTEN, SU, VAN, DIALY (LƯU Ý: đặt tên trường chính xác như yêu cầu )

2 Khi nạp form không cho người dùng thao tác: Panel, các nút Lưu, Hủy

3 Kết nối cơ sở dữ liệu, đưa dữ liệu từ bảng KETQUA lên DataGridView có bẫy lỗi

4 Khi click vào danh sách thì thông tin được hiển thị lên các textbox

• Tính Điểm kết quả (DKQ)=trung bình cộng 3 điểm, lấy 2 số lẻ

Tính Xếp loại: DKQ

Ngày đăng: 28/10/2022, 23:39

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