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 thc
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.