Mӝt sӕ KjPWKѭӡng dùng trong SQL Server

Một phần của tài liệu Lập trình visual studio (Trang 72 - 102)

1. Hàm ngày – giӡ

a. Hàm DATEADD

Cú pháp:

DATEADD(datepart, number, date)

Datepart: tham sӕ chӍ ÿӏnh thành phҫn sӁ ÿѭӧc cӝng thêm vào ngày date.

DatePart ViӃt tҳt

year yy, yyyy

quarter qq, q month mm, m dayofyear dy, y day dd, d week wk, ww hour hh minute mi, n second ss, s milisecond ms

Công dөng: Hàm trҧ vӅ mӝt giá trӏ kiӇu DateTime bҵng cách cӝng thêm mӝt khoҧng giá trӏ là number vào ngày date ÿѭӧc chӍ ÿӏnh.

b. Hàm DATEDIFF

Cú pháp:

DATEDIFF(datepart, startdate, enddate)

Công dөng: Hàm trҧ vӅ khoҧng thӡi gian giӳa 2 giá trӏ kiӇu ngày startdate và enddate tùy thuӝc vào datepart.

Ví dө: DateDiff(year, '3/10/2003', '6/15/2010') à kӃt quҧ: 7 c. Hàm DATEPART Cú pháp: DATEPART(datepart, date) Công dөng: Hàm trҧ vӅ mӝt sӕ QJX\rQ ÿѭӧc trích ra tӯ thành phҫQ ÿѭӧc chӍ ÿӏnh bӣi

datepart trong giá trӏ ngày date.

Ví dө:

DatePart(year, '6/15/2010') à kӃt quҧ: 2010

d. Hàm GETDATE

Cú pháp:

GETDATE()

Công dөng: Hàm trҧ vӅ giá trӏ là ngày hiӋn tҥi.

e. Hàm DAY, MONTH, YEAR

Cú pháp:

DAY(date) / MONTH(date) / YEAR(date)

Công dөng: Hàm trҧ vӅ giá trӏ OjQJj\WKiQJQăPFӫa ngày date. Ví dө:

Day('6/15/2010') à kӃt quҧ: 15 Month('6/15/2010') à kӃt quҧ: 6

LѭXKjQKQӝi bӝ Trang 71 Year('6/15/2010') à kӃt quҧ: 2010 2. Hàm chuӛi a. Hàm LEFT Cú pháp: LEFT(string, n)

Công dөng: Hàm trích tӯ chuӛi string n ký tӵ tính tӯ bên trái.

b. Hàm RIGHT

Cú pháp:

RIGHT(string, n)

Công dөng: Hàm trích tӯ chuӛi string n ký tӵ tính tӯ bên phҧi.

c. Hàm SUBSTRING

Cú pháp:

SUBSTRING(string, m, n)

Công dөng: Hàm trích tӯ chuӛi string n ký tӵ tính tӯ ký tӵ thӭ m.

d. Hàm LTRIM

Cú pháp:

LTRIM(string)

Công dөng: Hàm cҳt bӓ khoҧng trҳng thӯa bên trái chuӛi string.

e. Hàm RTRIM

Cú pháp:

RTRIM(string)

Công dөng: Hàm cҳt bӓ khoҧng trҳng thӯa bên phҧi chuӛi string.

f. Hàm LEN

Cú pháp: LEN(string)

Công dөng: Hàm trҧ vӅ ÿӝ dài cӫa chuӛi string.

Thӵc hành

1. KhӣLÿӝng SQL SERVER 2008:

a. Start à All programs à Microsoft SQL Server 2008 à SQL Server Management Studio b. Chͱng th͹c

c. Chӑn Connect

2. Ӣ cӱa sә Object Explorer, click phҧi chuӝt lên banhang và chӑn lӋnh New Query

3. Ӣ cӱa sә query, thӵc hiӋn các câu lӋnh trong các Ví dө ӣ trên.

LѭXKjQKQӝi bӝ Trang 72

&KѭѫQJ6: LҰP TRÌNH KӂT NӔI CSDL SQL SERVER 2008 Bài 10-11: LҰP TRÌNH KӂT NӔ,&Ѫ6Ӣ DӲ LIӊU

* &KXҭQEӏ:

- 7rQPi\ÿѭӧFVӱGөQJ(SERVERNAME) là PC-PC

- 'DWDEDVHÿѭӧFVӱGөQJ(DATABASENAME) là QuanLyBanHang, JӗPFyFiFWDEOH:

+ Nhanvien + HoaDon

+ Sanpham + ChiTietHoaDon

+ Khachhang + ThanhPho

- Vӟi quan hӋ 5HODWLRQVKLSQKѭVDX

- Sӱ dөng Visual Studio 2008 WҥRPӝWSURMHFWPӟL(Windows Forms Application)

I. Tҥo kӃt nӕi - 9ұQFKX\ӇQGӳOLӋX 1. Khai báo namespace sӱ dөng

using System.Data.SqlClient;

2. .KDLEiRӣPӭFFODVV

// ChuәLNӁWQӓL

string strConnectionString = "Data

Source=SERVERNAME;Initial Catalog=DATABASENAME;Integrated Security=True";

ĈӓLWѬӥQJNӁWQӓL

SqlConnection conn = null;

ĈӓLWѬӥQJÿѬDGӱOLӉXYào DataTable dtTABLENAME

SqlDataAdapter daTABLENAME = null;

ĈӓLWѬӥQJKLӅQWKӍ dӱOLӉu lên Form

DataTable dtTABLENAME = null;

LѭXKjQKQӝi bӝ Trang 73

// KhӡLÿӛQJNӁWQӓL

conn = new SqlConnection(strConnectionString);

// VүQFKX\ӅQGӱOLӉXOên DataTable dtTABLENAME

daTABLENAME = new SqlDataAdapter("SELECT * FROM TABLENAME",conn);

dtTABLENAME = new DataTable();

daTABLENAME.Fill(dtTABLENAME); 4. *LҧLSKyQJWjLQJX\rQ

. &KX\ӇQ)RUPYӅFKӃÿӝ'HVLJQ9LHZ

. ӢFӱDVәSURSHUWLHVFӫDIRUPÿDQJFKӑQ, click Events . 1KҳSÿ~SOrQVӵNLӋQFormClosing

. 9LӃWFRGHFKRVӵNLӋQQj\QKѭVDX:

// GiҥLSKyQJWài nguyên

dtTABLENAME.Dispose();

dtTABLENAME = null;

// Hө\NӁWQӓL

conn = null;

II. ĈѭDGӳOLӋXOrQFiFÿӕLWѭӧQJ/LVW%R[/ ComboBox – DataGridView 1. ĈѭDGӳOLӋXOrQ/LVW%R[/ ComboBox

Ví dө 10.1: 7KLӃWNӃIRUPQKѭVDX

(lstThanhPho, btnThoat) * <rXFҫX:

. Khi Form load: ÿѭDGӳ OLӋXWӯWDEOHThanhPho lên ListBox (lstThanhPho), NqPEү\OӛL. . 1KҳSYjR%XWWRQThoát: GӯQJFKѭѫQJWUuQK (có hiӋn hӝp thoҥi hӓLÿiS WUѭӟc khi dӯng). * +ѭӟQJGүQ:

- ThiӃt kӃ IRUPQKѭ\rXFҫu. - Khai báo namespace sӱ dөng:

using System.Data.SqlClient;

- ӠPӭFFODVV, khai báo:

// ChuәLNӁWQӓL

string strConnectionString = "Data Source=PC-PC;Initial

Catalog=QuanLyBanHang;Integrated Security=True"; ĈӓLWѬӥQJNӁWQӓL

SqlConnection conn = null;

ĈӓLWѬӥQJÿѬDGӱOLӉXYào DataTable dtThanhPho

SqlDataAdapter daThanhPho = null;

// ĈӓLWѬӥQJKLӅQWKӍGӱOLӉXOrQ)RUP

LѭXKjQKQӝi bӝ Trang 74 - Form load:

try

{

// KhӡLÿӛQJFRQQHFWLRQ

conn = new SqlConnection(strConnectionString);

// VүQFKX\ӅQGӱOLӉXOên DataTable dtThanhPho

daThanhPho = new SqlDataAdapter("SELECT * FROM

THANHPHO", conn);

dtThanhPho = new DataTable();

dtThanhPho.Clear();

daThanhPho.Fill(dtThanhPho);

// ĈѬDGӱOLӉXOrn ListBox

this.lstThanhPho.DataSource = dtThanhPho;

this.lstThanhPho.DisplayMember = "TenThanhPho";

this.lstThanhPho.ValueMember = "ThanhPho";

}

catch (SqlException)

{

MessageBox.Show(".K{QJOҧ\ÿѬӥFQӛLGXQJWURQJWDEOH THANHPHO. /әLUӕL!!!");

}

- FormClosing:

// GiҥLSKyQJWài nguyên

dtThanhPho.Dispose();

dtThanhPho = null;

// Hө\NӁWQӓL

conn = null;

- Button Thoát:

// Khai báo biӁQWUDORL

DialogResult traloi;

// HiӉQKӛSWKRңLKӑLÿiS

traloi = MessageBox.Show("ChұFNK{QJ", "TrҥOӟL,

MessageBoxButtons.OKCancel, MessageBoxIcon.Question);

// KiӅPWUDcó nhұSFKӏQQ~W2NNK{QJ"

if (traloi == DialogResult.OK)Application.Exit();

2. ĈѭDGӳOLӋXOrQ'DWD*ULG9LHZ Ví dө 10.2: 7KLӃWNӃIRUPQKѭVDX

LѭXKjQKQӝi bӝ Trang 75 (dgvKHACHHANG, btnThoat)

* <rXFҫX:

. Khi Form load: ÿѭDGӳOLӋXWӯWDEOHKhachHang lên DataGridView (dgvKHACHHANG), có bү\OӛL.

. 1KҳSYjR%XWWRQThoát: GӯQJFKѭѫQJWUuQK. * +ѭӟQJGүQ:

- 7KLӃWNӃIRUPWKHR\rXFҫX. - 'DWD*ULG9LHZFyWKXӝFWtQK:

+ Name: dgvKHACHHANG

+ 1KҳSSKҧLFKXӝWOrQ'DWD*ULG9LHZFKӑQ(GLW&ROXPQV«

+ 7URQJ KӝS WKRҥLEdit Columns, QKҳS$GG ÿӇ Pӣ KӝS WKRҥL Add column và các

column (FӝW) theo danh sách sau:

Name Type Header text DataPropertyName Width Ghi chú

MaKH TextBox Mã KH MaKH 100 Frozen

TenCty TextBox Tên Cty TenCty 250

DiaChi TextBox Ĉӏa chӍ DiaChi 200

ThanhPho TextBox Thành Phӕ ThanhPho 100

DienThoai TextBox 1Jj\1KұQ+jQJ DienThoai 100 7URQJÿy:

TextBox: là DataGridViewTextBoxColumn CheckBox: là DataGridViewCheckBoxColumn ComboBox: là DataGridViewComboBoxColumn

7KXӝF WtQKDataPropertyName, Width ÿLӅX FKӍQK WURQJ KӝS WKRҥLEdit Column.

- Khai báo namespace sӱ dөng:

using System.Data.SqlClient;

- ӠPӭFFODVV, khai báo:

// ChuәLNӁWQӓL

string strConnectionString = "Data Source=PC-PC;Initial

Catalog=QuanLyBanHang;Integrated Security=True"; ĈӓLWѬӥQJNӁWQӓL

SqlConnection conn = null;

ĈӓLWѬӥQJÿѬDGӱOLӉXYào DataTable dtKhachHang

SqlDataAdapter daKhachHang = null;

LѭXKjQKQӝi bӝ Trang 76

DataTable dtKhachHang = null; - Form load:

try

{

// KhӡLÿӛQJFRQQHFWLRQ

conn = new SqlConnection(strConnectionString);

// VүQ chuyӅQGӱOLӉXOên DataTable dtKhachHang

daKhachHang = new SqlDataAdapter("SELECT * FROM

KHACHHANG", conn);

dtKhachHang = new DataTable();

dtKhachHang.Clear(); daKhachHang.Fill(dtKhachHang); // ĈѬDGӱOLӉXOrQ'DWD*ULG9LHZ dgvKHACHHANG.DataSource = dtKhachHang; } catch (SqlException) {

MessageBox.Show(".K{QJOҧ\ÿѬӥFQӛLGXQJWURQJWDEOH KHACHHANG. /әLUӕL!!!");

}

- FormClosing:

// GiҥLSKyQJWài nguyên

dtKhachHang.Dispose();

dtKhachHang = null;

// Hө\NӁWQӓL

conn = null;

- Button Thoát:

// Khai báo biӁQWUDORL

DialogResult traloi;

// HiӉQKӛSWKRңLKӑLÿiS

traloi = MessageBox.Show("ChұFNK{QJ", "TrҥOӟL,

MessageBoxButtons.OKCancel, MessageBoxIcon.Question);

// KiӅPWUDFyQKұSFKӏQQ~W2NNK{QJ"

if (traloi == DialogResult.OK)Application.Exit();

3. ĈѭDGӳOLӋXYjR&RPER%R[WURQJ'DWD*ULG9LHZ Ví dө 10.3: Tӯ Ví Dө 10.2, bә sung button

LѭXKjQKQӝi bӝ Trang 77 * +ѭӟQJGүQ:

- ӠPӭFFODVV, bә sung ÿRҥn code và khai báo hàm LoadData() QKѭVDX:

ĈӓLWѬӥQJÿѬDGӱOLӉXYào DataTable dtThanhPho

SqlDataAdapter daThanhPho = null;

// ĈӓLWѬӥQJKLӅQWKӍGӱOLӉXOrQ)RUP

DataTable dtThanhPho = null;

void LoadData()

{

try

{

// KhӡLÿӛQJFRQQHFWLRQ

conn = new SqlConnection(strConnectionString);

// VүQFKX\ӅQGӱOLӉXYào DataTable dtThanhPho

daThanhPho = new SqlDataAdapter("SELECT * FROM

THANHPHO", conn);

dtThanhPho = new DataTable();

dtThanhPho.Clear();

daThanhPho.Fill(dtThanhPho);

// ĈѬDGӱOLӉXOrQ&RPER%R[WURQJ'DWD*ULG9LHZ

(dgvKHACHHANG.Columns["ThanhPho"] as

DataGridViewComboBoxColumn).DataSource = dtThanhPho;

(dgvKHACHHANG.Columns["ThanhPho"] as DataGridViewComboBoxColumn).DisplayMember = "TenThanhPho"; (dgvKHACHHANG.Columns["ThanhPho"] as DataGridViewComboBoxColumn).ValueMember = "ThanhPho";

// VүQFKX\ӅQGӱOLӉXYào DataTable dtKhachHang

daKhachHang = new SqlDataAdapter("SELECT * FROM

KHACHHANG", conn);

dtKhachHang = new DataTable();

dtKhachHang.Clear();

daKhachHang.Fill(dtKhachHang);

LѭXKjQKQӝi bӝ Trang 78 dgvKHACHHANG.DataSource = dtKhachHang;

}

catch (SqlException)

{

MessageBox.Show(".K{QJOҧ\ÿѬӥFQӛLGXQJWURQJWDEOH KHACHHANG. /әLUӕL!!!");

} }

- Form Load: bӓ nӝi dung cNJWKD\Eҵng LoadData();

- ReLoad: NhҳSÿ~SYjR%XWWRQ5H/RDGviӃWÿRҥn code QKѭVDX

LoadData();

III. Các thao tác trên dӳ liӋu: Thêm – Sӱa - Xóa 1. Ví dө 10.4: Tӯ Ví dө 10.3, bә sung button sau 1. Ví dө 10.4: Tӯ Ví dө 10.3, bә sung button sau

Xóa (btnXoa): xóa record hiӋn hành ra khӓi table KhachHang.

* +ѭӟQJGүQ:

- Xóa: NhҳSÿ~SYjR%XWWRQ;yDWKӵc hiӋQQKѭVDX

// 0ӡNӁWQӓL

conn.Open();

try

{

// 7KӳFKLӉQOӉQK

SqlCommand cmd = new SqlCommand(); cmd.Connection = conn;

cmd.CommandType = CommandType.Text;

// Lҧ\WKӫWӳUHFRUGKLӉQKjQK int r = dgvKHACHHANG.CurrentCell.RowIndex; // Lҧ\0D.+FөDUHFRUGKLӉQKjQK string strMAKH = dgvKHACHHANG.Rows[r].Cells[0].Value.ToString(); // ViӁWFkXOӉQK64/

cmd.CommandText = System.String.Concat("Delete From

KhachHang Where MaKH='" + strMAKH + "'");

cmd.CommandType = CommandType.Text;

LѭXKjQKQӝi bӝ Trang 79 cmd.ExecuteNonQuery();

// CүSQKүWOңi DataGridView

LoadData();

// Thông báo

MessageBox.Show("Ĉm[yD[RQJ!"); }

catch (SqlException)

{

MessageBox.Show("Không xóa ÿѬӥF. /әLUӕL!!!"); }

// ĈyQJNӁWQӓL

conn.Close();

2. Ví dө 10.5: Tӯ Ví dө 10.4, bә sung FiFÿӕLWѭӧQJQKѭVDX (xem hình) - Panel, trong ÿy có

+ 4 TextBox: txtMaKH, txtTenCty, txtDiachi, txtDienthoai + 1 ComboBox: cbThanhpho

- 4 Button: btnThem, btnSua, btnLuu, btnHuy * Yêu cҫu:

- ThiӃt kӃ NK{QJFKRQJѭӡi dùng thao tác (Enabled = false) khi load form: + Panel

+ Các Button /ѭu, Hӫy

- ĈLӅu chӍnh lҥi thuӝc tính (properties) cӫa DataGridView + AllowUserToAddRows = False

+ EditMode = EditProgrammatically

- Khi Form load: ÿѭDGӳOLӋXWӯWDEOH.KDFK+DQJOrQ'DWD*ULG9LHZ(dgvKHACHHANG), FyEү\OӛL.

- 1KҳSYjR%XWWRQReLoad: load lҥi nӝi dung table KhachHang lên dgvKHACHHANG - Nhҳp vào Button Thêm:

+ Xóa trӕQJFiFÿӕLWѭӧng trong Panel.

+ Cho phép nhұSWK{QJWLQNKiFKKjQJYjRFiFÿӕLWѭӧng trên Panel + Không cho phép thao tác trên các Button: Thêm, Sӱa, Xóa, Thoát. + Cho phép thao tác trên các Button: /ѭX, Hӫy.

- Nhҳp vào Button Sӱa:

ĈѭDWK{QJWLQFӫDNKiFKKjQJÿDQJÿѭӧc chӑn trong DataGridView lên Panel. + Cho phép nhұp / sӱDWK{QJWLQNKiFKKjQJYjRWURQJFiFÿӕLWѭӧng trên Panel. + Không cho phép thao tác trên các Button: Thêm, Sӱa, Xóa, Thoát.

+ Cho phép thao tác trên các Button: /ѭX, Hӫy.

- Nhҳp vàp Button /ѭX.

+ Insert / Update thông tin khách hàng tӯ Panel vào table KhachHang. + ReLoad lҥi DataGridView

- Nhҳp vàp Button Hӫy:

+ Xóa trӕQJFiFÿӕLWѭӧng trong Panel.

LѭXKjQKQӝi bӝ Trang 80 * +ѭӟQJGүQ:

- ThiӃt kӃ bә sung Panel vӟi 4 TextBox và 1 ComboBox, Panel có Enabled = false - ӠPӭFFODVV, bә sung khai báo biӃQQKѭVDX

// Khai báo biӁQNLӅPWUDYLӉF7Kêm hay SӯDGӱOLӉX

bool Them;

- Hàm LoadData(): bә sung Gѭӟi hàng

// ĈѬDGӱOLӉXOrQ'DWD*ULG9LHZ dgvKHACHHANG.DataSource = dtKhachHang; ÿRҥn code sau // Xóa trӓQJFiFÿӓLWѬӥQJWURQJ3DQHO this.txtMaKH.ResetText(); this.txtTenCty.ResetText(); this.txtDiaChi.ResetText(); this.txtDienThoai.ResetText(); .K{QJFKRWKDRWiFWUrQFiFQ~W/ѬX+ө\

this.btnLuu.Enabled = false;

this.btnHuy.Enabled = false;

this.panel.Enabled = false;

// Cho thao tác trên các nút Thêm / SӯD;yD7KRiW

this.btnThem.Enabled = true;

this.btnSua.Enabled = true;

this.btnXoa.Enabled = true;

this.btnThoat.Enabled = true;

- Thêm: nhҳSÿ~SYjREXWWRQThêm, bә VXQJÿRҥn code

// Kich hoңWELӁQ7KHP Them = true; // Xóa trӓQJFiFÿӓLWѬӥQJWURQJ3DQHO this.txtMaKH.ResetText(); this.txtTenCty.ResetText(); this.txtDiaChi.ResetText();

LѭXKjQKQӝi bӝ Trang 81

this.txtDienThoai.ResetText();

&KRWKDRWiFWUrQFiFQ~W/ѬX+ө\3DQHO

this.btnLuu.Enabled = true;

this.btnHuy.Enabled = true;

this.panel.Enabled = true;

// Không cho thao tác trên các nút Thêm / Xóa / Thoát

this.btnThem.Enabled = false;

this.btnSua.Enabled = false;

this.btnXoa.Enabled = false;

this.btnThoat.Enabled = false;

// ĈѬDGӱOLӉXOrQ&RPER%R[

this.cbThanhPho.DataSource = dtThanhPho;

this.cbThanhPho.DisplayMember = "TenThanhPho";

this.cbThanhPho.ValueMember = "ThanhPho";

ĈѬDFRQWUӑÿӁQ7H[W)LHOGW[W0D.+

this.txtMaKH.Focus();

- Sӱa: NhҳSÿ~SYjREXWWRQ6ӱa, bә VXQJÿRҥn code

// Kích hoңWELӁQ6ӯD

Them = false;

// ĈѬDGӱOLӉXOrQ&RPER%R[

this.cbThanhPho.DataSource = dtThanhPho;

this.cbThanhPho.DisplayMember = "TenThanhPho";

this.cbThanhPho.ValueMember = "ThanhPho";

// Cho phép thao tác trên Panel

this.panel.Enabled = true;

// 7KӫWӳGzQJKLӉQKjQK

int r = dgvKHACHHANG.CurrentCell.RowIndex;

// ChuyӅQWK{QJWLQOên panel

this.txtMaKH.Text =

LѭXKjQKQӝi bӝ Trang 82 this.txtTenCty.Text = dgvKHACHHANG.Rows[r].Cells[1].Value.ToString(); this.txtDiaChi.Text = dgvKHACHHANG.Rows[r].Cells[2].Value.ToString(); this.cbThanhPho.SelectedValue = dgvKHACHHANG.Rows[r].Cells[3].Value.ToString(); this.txtDienThoai.Text = dgvKHACHHANG.Rows[r].Cells[4].Value.ToString(); &KRWKDRWiFWUrQFiFQ~W/ѬX+ө\3DQHO

this.btnLuu.Enabled = true;

this.btnHuy.Enabled = true;

this.panel.Enabled = true;

// Không cho thao tác trên các nút Thêm / Xóa / Thoát

this.btnThem.Enabled = false;

this.btnSua.Enabled = false;

this.btnXoa.Enabled = false;

this.btnThoat.Enabled = false;

ĈѬDFRQWUӑÿӁQ7H[W)LHOGW[W0D.+ this.txtMaKH.Focus(); - LѭX: NhҳSÿ~SYjREXWWRQ/ѭXEә VXQJÿRҥn code // 0ӡNӁWQӓL conn.Open(); // Thêm dӱOLӉX if (Them) { try { // 7KӳFKLӉQOӉQK

SqlCommand cmd = new SqlCommand(); cmd.Connection = conn;

LѭXKjQKQӝi bӝ Trang 83

cmd.CommandType = CommandType.Text;

// LӉQKInsert InTo

cmd.CommandText = System.String.Concat("Insert

Into KhachHang Values(" + "'" +

this.txtMaKH.Text.ToString() + "','" + this.txtTenCty.Text.ToString() + "','" + this.txtDiaChi.Text.ToString() + "','" + this.cbThanhPho.SelectedValue.ToString() + "','" + this.txtDienThoai.Text.ToString() + "')");

cmd.CommandType = CommandType.Text;

cmd.ExecuteNonQuery();

// Load lңLGӱOLӉXWUên DataGridView

LoadData(); // Thông báo MessageBox.Show("ĈmWKrP[RQJ!"); } catch (SqlException) {

MessageBox.Show("Không WKrPÿѬӥF/әLUӕL); } } if (!Them) { try { // 7KӳFKLӉQOӉQK

SqlCommand cmd = new SqlCommand(); cmd.Connection = conn;

cmd.CommandType = CommandType.Text;

// 7KӫWӳGzQJKLӉQKjQK int r = dgvKHACHHANG.CurrentCell.RowIndex; // MaKH hiӉn hành string strMAKH = dgvKHACHHANG.Rows[r].Cells[0].Value.ToString(); // Câu lӉQK64/

cmd.CommandText = System.String.Concat("Update

KhachHang Set TenCty='" +

this.txtTenCty.Text.ToString() + "', DiaChi='"

+ this.txtDiaChi.Text.ToString() + "',

ThanhPho='" +

this.cbThanhPho.SelectedValue.ToString() + "',

DienThoai='" +

this.txtDienThoai.Text.ToString() + "' Where

MaKH='" + strMAKH + "'");

// CүSQKүW

cmd.CommandType = CommandType.Text;

cmd.ExecuteNonQuery();

LѭXKjQKQӝi bӝ Trang 84 LoadData(); // Thông báo MessageBox.Show("ĈmVӯD[RQJ!"); catch (SqlException) {

MessageBox.Show("Không sӯD ÿѬӥF/әLUӕL); }

}

// ĈyQJNӁWQӓL

conn.Close();

- Hӫy: NhҳSÿ~SYjREXWWRQ+ӫy, bә sung ÿRҥn code

// Xóa trӓQJFiFÿӓLWѬӥQJWURQJ3DQHO

this.txtMaKH.ResetText();

this.txtTenCty.ResetText();

this.txtDiaChi.ResetText();

this.txtDienThoai.ResetText();

// Cho thao tác trên các nút Thêm / SӯD;yD7KRiW

this.btnThem.Enabled = true;

this.btnSua.Enabled = true;

this.btnXoa.Enabled = true;

this.btnThoat.Enabled = true;

.K{QJFKRWKDRWiFWUrQFiFQ~W/ѬX+ө\3DQHO

this.btnLuu.Enabled = false;

this.btnHuy.Enabled = false;

this.panel.Enabled = false;

%jL7ұS

1. 7KLӃWNӃIRUPQKѭVDX:

(cbSanpham, btnThoat) * <rXFҫX:

. Form load: ÿѭDGӳOLӋXWӯWDEOH6DQPham lên ComboBox (cbSanPham), NqPEү\OӛL. . 1KҳSYjR%XWWRQThoát: GӯQJFKѭѫQJWUuQK (có hiӋn hӝp thoҥi hӓLÿiS.

2. ĈѭDGӳOLӋXOrQ'DWD*ULG9LHZQKѭ,, cho các table: NhanVien, SanPham.

3. ThiӃt kӃ form QKѭ,,,WKӵc hiӋn các thao tác: Thêm, Sӱa, Xóa cho các table: HoaDon, ChiTietHoaDon. /ѭXý: Các field MaKH, MaNV, MaSP thӇ hiӋQGѭӟi dҥng ComboBox.

LѭXKjQKQӝi bӝ Trang 85

&KѭѫQJ7: XÂY DӴNG ӬNG DӨNG Bài 12-13-14-15: ӬNG DӨNG QUҦN LÝ BÁN HÀNG

I. &KXҭQEӏ:

- Tên Pi\ÿѭӧFVӱGөQJ(SERVERNAME) là PC-PC WKD\ÿәLFKRÿ~QJPi\ÿDQJGQJ - 'DWDEDVHÿѭӧFVӱGөQJ(DATABASENAME) là QuanLyBanHang, JӗPFyFiFWDEOHVDX:

+ ThanhPho + Sanpham + Khachhang + Hoadon + Nhanvien + ChitietHoadon - Vӟi quan hӋ (RelatiRQVKLSQKѭVDX

- KhӣLÿӝng SQL Server 2008, WҥRPӝW'DWD%DVHPӟLFyWrQQuanLyBanHang, import dӳ liӋu tӯ file QuanLyBanHang.mdb

- KhӣLÿӝng Visual Studio 2008, WҥRPӝWSURMHFWPӟL:LQGRZV)RUPV$SSOLFDWLRQOѭXYӟi tên QUANLYBANHANG

II. Sӱ dөng control:

LѭXKjQKQӝi bӝ Trang 86 * Yêu cҫu:

.KL)RUPÿѭӧc thӵc hiӋn sӁ thӇ hiӋn màn hình “ĈăQJQKұp hӋ thӕng” là Form2. +ѭӟng dүn:

- ӠPӭFFODVV, khai báo hàm frmLoginQKѭVDX

Form frm = new Form2();

frm.ShowDialog(); - Form Load:

frmlogin();

Câu 02: (Form2 – Màn hình ĈăQJQKұp - login)

ViӃWFKѭѫQJWUình thӇ hiӋn màn hình “ĈăQJQKұS´ORJLQQKѭVDX

(txtUser, txtPass, btnDangNhap, btnThoat) * Yêu cҫu:

- Khi nhҳp vào nút ĈăQJQKұp (btnDangNhap) sӁ thӵc hiӋn kiӇm tra: + NӃu txtUser = "teonv" và txtPass = "123" thì chuyӇQVDQJ)RUP 1Jѭӧc lҥi thì thông báo ".K{QJÿ~QJWrQQJѭӡi dùng / mұt khҭu !!!" - Nhҳp button Thoát thì hiӇn thӏ thông báo "Chҳc không? "

+ NӃu chӑn Yes thì kӃWWK~FFKѭѫQJWUình.

1Jѭӧc lҥi thì trӣ lҥi màn hình ĈăQJQKұp hӋ thӕng. +ѭӟng dүn:

- ĈăQJQKұp: NhҳSÿ~SYjREXWWRQEWQ'DQJQKDSJõ vào ÿRҥn code sau

if ((this.txtUser.Text=="teonv")&&(this.txtPass.Text=="123"))

this.Close(); else { MessageBox.Show(.K{QJÿ~QJWrQQJѬӟLGùng / mүW khҫX,"Thông báo"); this.txtUser.Focus(); }

- Thoát: NhҳSÿ~SYjREXWWRQEWQ7KRDWJõ vào ÿRҥn code sau

DialogResult traloi;

traloi = MessageBox.Show("ChұFNK{QJ", "TrҥOӟL,

MessageBoxButtons.OKCancel, MessageBoxIcon.Question);

if ( traloi == DialogResult.OK)

LѭXKjQKQӝi bӝ Trang 87

Câu 03: (Form1 – HӋ thӕng Menu)

LѭXKjQKQӝi bӝ Trang 88 +ѭӟng dүn: Sӱ dөng MenuStrip

Câu 04: (Form1 – Menu HӋ thӕng)

* Yêu cҫu: Trên Form1, viӃt lӋnh cho menu hӋ thӕQJQKѭVDX

- Khi chӑn menu “HӋ thӕng \ ĈăQJQKұp” sӁ thӵc hiӋQÿăQJQKұp lҥi hӋ thӕng (Form2).

- Khi chӑn menu “HӋ thӕng \ Thoát” sӁ dӯQJFKѭѫQJWUình.

+ѭӟng dүn:

- Menu “HӋ thӕng \ ĈăQJQKұp”: NhҳSÿ~SYjRPHQX³+Ӌ thӕng \ ĈăQJQKұp”, gõ vào

ÿRҥn code sau:

frmlogin();

- Menu “HӋ thӕng \ Thoát”: NhҳSÿ~SYjRPHQX³+Ӌ thӕng \ ĈăQJQKұp”, gõ vào ÿRҥn code sau:

DialogResult traloi;

traloi = MessageBox.Show("ChұFNK{QJ", "TrҥOӟL,

MessageBoxButtons.OKCancel, MessageBoxIcon.Question);

if ( traloi == DialogResult.OK)

Application.Exit();

III. Sӱ dөng DataBase:

Câu 05:

a) (Form1 – Menu Danh mөc)

* Yêu cҫu: Trên Form1, viӃt lӋnh cho menu danh mөFQKѭVDX

- ViӃt hàm XemDanhMuc(int intDanhMuc) thӵc hiӋn mӣ Form3 và gánForm3.Text = intDanhMuc.

- Khi chӑn menu “Xem Danh mөc \ <int>” sӁ thӵc hiӋn gӑi hàm XemDanhMuc(<int>), vӟi <int> là giá trӏ WѭѫQJӭng vӟi danh mөFÿѭӧc chӑn.

+ѭӟng dүn:

- ӠPӭFFODVV, khai báo hàm XemDanhMucLQWLQW'DQK0XFQKѭVDX

// Hàm xemm danh mӧF

void XemDanhMuc(int intDanhMuc)

{

Form frm = new Form3();

frm.Text = intDanhMuc.ToString(); frm.ShowDialog();

}

- Menu “Xem Danh mөc \ Danh mөc Thành Phӕ”: NhҳSÿ~SYjRPHQX³;HP'DQK

mөc \ Danh mөc Thành Phӕ”, gõ vào ÿRҥn code sau: XemDanhMuc(1);

- Menu “Xem Danh mөc \ Danh mөc Khách Hàng”: NhҳSÿ~SYjRPHQX³;HP'DQK

mөc \ Danh mөc Khách Hàng”, gõ vào ÿRҥn code sau: XemDanhMuc(2);

- Menu “Xem Danh mөc \ Danh mөc Nhân Viên”: NhҳSÿ~SYjRPHQX³;HP'DQK

mөc \ Danh mөc Nhân Viên”, gõ vào ÿRҥn code sau: XemDanhMuc(3);

- Menu “Xem Danh mөc \ Danh mөc Sҧn Phҭm”: NhҳSÿ~SYjo menu “Xem Danh

mөc \ Danh mөc Sҧn Phҭm”, gõ vào ÿRҥn code sau: XemDanhMuc(4);

LѭXKjQKQӝi bӝ Trang 89 - Menu “Xem Danh mөc \ Danh mөF+yDĈѫQ´: NhҳSÿ~SYjRPHQX³;HP'DQKPөc

\ Danh mөF+yDĈѫQ´Jõ vào ÿRҥn code sau: XemDanhMuc(5);

- Menu “Xem Danh mөc \ Danh mөc Chi TiӃt HyDĈѫQ´: NhҳSÿ~SYjRPHQX³;HP

Danh mөc \ Danh mөc Chi TiӃW+yDĈѫQ´Jõ vào ÿRҥn code sau: XemDanhMuc(6);

b) (Form3) ThiӃt kӃ Form3 theo mүXQKѭVDX

(lblDanhMuc, dgvDANHMUC, btnTroVe) * Yêu cҫu: Trên Form3

- .KL )RUP ÿѭӧc load sӁ hiӇn thӏ WrQ WDEOH ÿѭӧc chӑn) lên Label lblDanhMuc và nӝi dung cӫa table này lên DataGridView dgvDANHMUC.

Một phần của tài liệu Lập trình visual studio (Trang 72 - 102)

Tải bản đầy đủ (PDF)

(102 trang)