Bài tập ôn C Sharp
Viết code thêm 1 dòng dữ liệu: (“MS0001”, “C# - Step byStep”, “Jon Jagger”, “Microsoft Press”, 2004, “null”)
private void btnInsert_Click(object sender, EventArgs e)
{
// mở kết nối
m_cnn.Open();
// tạo câu insert
string sql = "Insert into tblMayTinh values ('MS0001', 'C# - Step byStep', 'Jon Jagger', 'Microsoft Press', 6920049, '')";
// đưa câu lệnh sql vào cmd
cmd = new SqlCommand(sql, m_cnn);
// thực thi câu lệnh sql
cmd.ExecuteNonQuery();
// đóng kết nối
m_cnn.Close();
}
olumns.Add("Tên phim");
dtDSDatVe.Columns.Add("Giờ chiếu");
dtDSDatVe.Columns.Add("Ngày chiếu");
dtDSDatVe.Columns.Add("Số vé");
this.dgvDSDatVe.DataSource = dtDSDatVe;
// a.4/ hiển thị dữ liệu của dtDSDatVe lên dgv của dgvDSDatVe
dtDSDatVe.Rows.Add("Nguyễn Văn A", "12345", "098", "Để mai tính", "18g", "03/06/2011", "2");
dtDSDatVe.Rows.Add("Nguyễn Thị B", "67890", "093", "Bão táp sa mạc", "20g", "30/05/2011", "5");
dgvDSDatVe.DataSource = dtDSDatVe;
}
b)
// viết sự kiện validating cho tên khách hàng không được để trống
private void txtKhachHang_Validating(object sender, CancelEventArgs e)
{
if (txtKhachHang.Text.Trim() == "")
MessageBox.Show("Tên khách hàng không được để trống");
}
// viết sự kiện validating cho địa chỉ không được để trống
private void txtDiaChi_Validating(object sender, CancelEventArgs e)
{
if (txtDiaChi.Text.Trim() == "")
MessageBox.Show("Địa chỉ không được để trống");
}
// viết sự kiện validating cho ĐT phải là số hợp lệ, k có kí tự khác ngoài con số
private void txtDienThoai_Validating(object sender, CancelEventArgs e)
{
// phải có hàm thư viện using System.Text.RegularExpressions;
string pattern = @"^((\(\d{3}\) ?)|(\d{3}))?\d{3}\d{4}$"; // khai báo biểu thức chính qui
Regex phone = new Regex(pattern); // khởi tạo đối tượng biểu thức chính qui
if (phone.Match(txtDienThoai.Text).Success == false)
MessageBox.Show("Bạn đã nhập sai số điện thoại, xin nhập lại!!!");
}
c)
// viết sự kiện cho btnDatVe, lấy thông tin trên form đưa vào dgvDSDatVe
private void btnDatVe_Click(object sender, EventArgs e)
{
dtDSDatVe.Rows.Add(txtKhachHang.Text, txtDiaChi.Text, txtDienThoai.Text, cboTenPhim.Text, cboGioChieu.Text, dtpNgayChieu.Text, numSoVe.Value);
this.dgvDSDatVe.DataSource = dtDSDatVe;
}
2.
Database PcData
MayTinh
Tên field
Kiểu dữ liệu
Mô tả
MayMay
Char(6)
Mã máy tính
TenMay
Nvarchar(20)
Tên máy tính
NgaySX
DateTime
Ngày sản xuất
GiaTien
Float
Giá tiền
CauHinh
Nvarchar(50)
Mô tả cấu hình
Khai báo:
private SqlConnection m_cnn = null;
private SqlDataAdapter m_da = new SqlDataAdapter();
private SqlCommand cmd = null;
private DataSet m_ds = null;
a) Cho biết chuỗi kết nối đến CSDL PCData, giả sử server SQL là SQLEXPRESS, chạy tại máy cục bộ
string cnnStr = @"Data Source =.\SQLEXPRESS; Init Catalog = PCData; Integrated Security = True";
b) Giả sử có dgv là dgvMayTinh, viết code: lấy toàn bộ dữ liệu bảng MayTinh lên dgvMayTinh
void KetNoiCSDL()
{
// tạo chuỗi kết nối
string cnnStr = @"Data Source =.\SQLEXPRESS; Init Catalog = PCData; Integrated Security = True";
// tạo kết nối
m_cnn = new SqlConnection(cnnStr);
// mở kết nối
m_cnn.Open();
// kiểm tra kết nối
if (m_cnn.Open == ConnectionState.Open)
MessageBox.Show("Kết nối thành công");
}
private void Form1_Load(object sender, EventArgs e)
{
KetNoiCSDL();
// tạo câu lệnh sql
string sql = "select * from tblMayTinh";
// khởi tạo adapter
m_da = new SqlDataAdapter(sql, m_cnn);
// khởi tạo nơi chứa dữ liệu
m_ds = new DataSet();
// đưa dữ liệu bảng tblMayTinh vào dataset
m_da.Fill(m_ds, "tblMayTinh");
dgvMayTinh.DataSource = m_ds.Tables["tblMayTinh"]; // hoặc có thể ghi bằng m_ds.Tables[0]
}
c) Viết code thêm 1 dòng dữ liệu: (“IBM001”, “IBMWorkStation”, 01/02/2010, 699, “null”)
private void btnInsert_Click(object sender, EventArgs e)
{
// mở kết nối
m_cnn.Open();
// tạo câu insert
string sql = "Insert into tblMayTinh values ('IBM001', 'IBMWorkStation', 01/02/1990, 699, '')";
// đưa câu lệnh sql vào cmd
cmd = new SqlCommand(sql, m_cnn);
// thực thi câu lệnh sql
cmd.ExecuteNonQuery();
// đóng kết nối
m_cnn.Close();
}
d) Viết code cập nhật thông tin bảng máy tính : bổ sung cấu hình cho IBM001 là “Intel Core i7”
private void btnUpdate_Click(object sender, EventArgs e)
{
// mở kết nối
m_cnn.Open();
// tạo câu update
string sql = "Update tblMayTinh set CauHinh='Intel Core i7' where MaMay='IBM001'";
// đưa câu lệnh sql vào cmd
cmd = new SqlCommand(sql, m_cnn);
// thực thi câu lệnh sql
cmd.ExecuteNonQuery();
// đóng kết nối
m_cnn.Close();
}
-------------------------------------------Giải đề 2 thi lần 1 khóa 2007-------------------------------------------------
1.
Khai báo:
// biến thành viên dtDSDatVe
DataTable dtDSDatVe = new DataTable();
a) Viết sự kiện Form1_Load():
private void Form1_Load(object sender, EventArgs e)
{
// a.1/ Khởi tạo các giá trị cho các cboKhoiHanh và cboDiemDen
cboDiemDen.Items.Add("TPHCM");
cboDiemDen.Items.Add("Long An");
cboDiemDen.Items.Add("Mỹ Tho");
cboDiemDen.Items.Add("Vĩnh Long");
cboDiemDen.Items.Add("Cần Thơ");
cboDiemDen.Items.Add("Sa Đéc");
cboDiemDen.Items.Add("Long Xuyên");
cboKhoiHanh.Items.Add("TPHCM");
cboKhoiHanh.Items.Add("Long An");
cboKhoiHanh.Items.Add("Mỹ Tho");
cboKhoiHanh.Items.Add("Vĩnh Long");
cboKhoiHanh.Items.Add("Cần Thơ");
cboKhoiHanh.Items.Add("Sa Đéc");
cboKhoiHanh.Items.Add("Long Xuyên");
// a.2/ Khởi tạo các giờ khởi hành:
cboGioDi.Items.Add("8g");
cboGioDi.Items.Add("10g");
cboGioDi.Items.Add("12g");
cboGioDi.Items.Add("14g");
cboGioDi.Items.Add("16g");
cboGioDi.Items.Add("18g");
cboGioDi.Items.Add("20g");
// a.3/ Khởi tạo cấu trúc bảng dtDSDatVe, tạo các cột tương ứng
dtDSDatVe.Columns.Add("Tên KH");
dtDSDatVe.Columns.Add("Địa chỉ");
dtDSDatVe.Columns.Add("Điện thoại");
dtDSDatVe.Columns.Add("Điểm khởi hành");
dtDSDatVe.Columns.Add("Điểm đến");
dtDSDatVe.Columns.Add("Giờ đi");
dtDSDatVe.Columns.Add("Ngày đi");
dtDSDatVe.Columns.Add("Số vé");
// a.4/ Hiển thị dữ liệu dtDSDatVe lên dgvDSDatVe
dtDSDatVe.Rows.Add("Nguyễn Văn A", "123", "093", "TPHCM", "Mỹ Tho", "12g", "30/05/2011", "2");
dtDSDatVe.Rows.Add("Nguyễn Thị B", "456", "095", "Long An", "Long Xuyên", "18g", "03/06/2011", "5");
// đưa dữ liệu từ dtDSDatVe lên dgvDSDatVe
dgvDSDatVe.DataSource = dtDSDatVe;
}
b)
// viết sự kiện validating cho tên khách hàng không được để trống
private void txtKhachHang_Validating_1(object sender, CancelEventArgs e)
{
if (txtKhachHang.Text.Trim() == "")
MessageBox.Show("Tên khách hàng không được để trống");
}
// viết sự kiện validating cho địa chỉ không được để trống
private void txtDiaChi_Validating_1(object sender, CancelEventArgs e)
{
if (txtDiaChi.Text.Trim() == "")
MessageBox.Show("Địa chỉ không được để trống");
}
// viết sự kiện validating cho điện thoại phải là số hợp lệ, k có kí tự khác ngoài con số
private void txtDienThoai_Validating_1(object sender, CancelEventArgs e)
{
// phải có hàm thư viện using System.Text.RegularExpressions;
string pattern = @"^((\(\d{3}\) ?)|(\d{3}))?\d{3}\d{4}$"; // khai báo biểu thức chính qui
Regex phone = new Regex(pattern); // khởi tạo đối tượng biểu thức chính qui
if (phone.Match(txtDienThoai.Text).Success == false)
MessageBox.Show("Bạn đã nhập sai số điện thoại, xin nhập lại!!!");
}
// viết sự kiện validating cho điểm đến phải khác điểm đi
private void cboDiemDen_Validating(object sender, CancelEventArgs e)
{
if (string.Compare(cboDiemDen.Text, cboKhoiHanh.Text) == 0)
MessageBox.Show("Điểm đến phải khác điểm đi");
}
c)
// viết sự kiện cho btnDatVe, lấy thông tin từ form đưa vào dtDatVe
private void btnDatVe_Click(object sender, EventArgs e)
{
dtDSDatVe.Rows.Add(txtKhachHang.Text, txtDiaChi.Text, txtDienThoai.Text, cboKhoiHanh.Text, cboDiemDen.Text, cboGioDi.Text, dtpNgayDi.Text, numSoVe.Value);
this.dgvDSDatVe.DataSource = dtDSDatVe;
}
2.
Database BookDB
Book
Tên field
Kiểu dữ liệu
Mô tả
BookID
char(6)
Mã sách
Name
nvarchar(50)
Tên sách
Author
nvarchar(40)
Tên tác giả
Publisher
nvarchar(40)
Nhà XB
Year
datetime
Năm XB
Description
nvarchar(255)
Mô tả sách, cho phép null
Khai báo:
private SqlConnection m_cnn = null;
private SqlDataAdapter m_da = new SqlDataAdapter();
private SqlCommand cmd = null;
private DataSet m_ds = null;
a) Cho biết chuỗi kết nối đến CSDL BookDB, giả sử server SQL là SQLEXPRESS, chạy tại máy cục bộ
string cnnStr = @"Data Source =.\SQLEXPRESS; Init Catalog = PCData; Integrated Security = True";
b) Giả sử có dgv là dgvBook, viết code: lấy toàn bộ dữ liệu bảng Book lên dgvBook
void KetNoiCSDL()
{
// tạo chuỗi kết nối
string cnnStr = @"Data Source =.\SQLEXPRESS; Init Catalog = BookDB; Integrated Security = True";
// tạo kết nối
m_cnn = new SqlConnection(cnnStr);
// mở kết nối
m_cnn.Open();
// kiểm tra kết nối
if (m_cnn.Open == ConnectionState.Open)
MessageBox.Show("Kết nối thành công");
}
private void Form1_Load(object sender, EventArgs e)
{
KetNoiCSDL();
// tạo câu lệnh sql
string sql = "select * from tblBook";
// khởi tạo adapter
m_da = new SqlDataAdapter(sql, m_cnn);
// khởi tạo nơi chứa dữ liệu
m_ds = new DataSet();
// đưa dữ liệu bảng tblBook vào dataset
m_da.Fill(m_ds, "tblBook");
dgvMayTinh.DataSource = m_ds.Tables["tblBook"]; // hoặc có thể ghi bằng m_ds.Tables[0]
}
c) Viết code thêm 1 dòng dữ liệu: (“MS0001”, “C# - Step byStep”, “Jon Jagger”, “Microsoft Press”, 2004, “null”)
private void btnInsert_Click(object sender, EventArgs e)
{
// mở kết nối
m_cnn.Open();
// tạo câu insert
string sql = "Insert into tblMayTinh values ('MS0001', 'C# - Step byStep', 'Jon Jagger', 'Microsoft Press', 6920049, '')";
// đưa câu lệnh sql vào cmd
cmd = new SqlCommand(sql, m_cnn);
// thực thi câu lệnh sql
cmd.ExecuteNonQuery();
// đóng kết nối
m_cnn.Close();
}
d) Viết code cập nhật thông tin bảng máy tính : bổ sung mô tả cho MS0001 là “Sách hướng dẫn lập trình c# từ cơ bản đến nâng cao”
private void btnUpdate_Click(object sender, EventArgs e)
{
// mở kết nối
m_cnn.Open();
// tạo câu update
string sql = "Update tblMayTinh set Description='Sách hướng dẫn lập trình c# từ cơ bản đến nâng cao' where BookID='MS0001'";
// đưa câu lệnh sql vào cmd
cmd = new SqlCommand(sql, m_cnn);
// thực thi câu lệnh sql
cmd.ExecuteNonQuery();
// đóng kết nối
m_cnn.Close();
}
File đính kèm:
Bài tập ôn C Sharp.doc

