Tác giả: vuathongtin
Cấp độ bài viết: Căn Bản
Tóm tắt:
Chú ý : C# ko hỗ trợ dấu " & " ==> kết nối 2 chuỗi bạn phải dùng "+"
1. Khai báo :
1.1. Khai báo Namespace kết nối CSDL
- Mã: Chọn tất cả
using System.Data.OleDb ; // đối với CSDL là access
hoặc :
- Mã: Chọn tất cả
using System.Data.SqlClient; // đối với CSDL SQL
1.2. khai báo 3 biến cơ bản dùng để Kết nối CSDL
Using csharp Syntax Highlighting
SqlDataAdapter da=new SqlDataAdapter() ;
SqlConnection con = new SqlConnection();
DataTable dt=new DataTable() ;
SqlConnection con = new SqlConnection();
DataTable dt=new DataTable() ;
Parsed in 0.006 seconds, using GeSHi 1.0.8.4
2 . Tạo Kết nối :
Using csharp Syntax Highlighting
void ketnoi()
{
if (con.State == ConnectionState.Closed)
{
con.ConnectionString = "<Provider của CSDL>";
con.Open();
}
}
{
if (con.State == ConnectionState.Closed)
{
con.ConnectionString = "<Provider của CSDL>";
con.Open();
}
}
Parsed in 0.006 seconds, using GeSHi 1.0.8.4
// Provider có thể tìm thấy ở : http://www.connectionstrings.com/
ví dụ : Đối với CSDL là SQL
Using csharp Syntax Highlighting
void ketnoi()
{
if (con.State == ConnectionState.Closed)
{
con.ConnectionString = "Server=(local);database=<tên CSDL>;user ID=sa;password=sa";
con.Open();
}
}
// sa là tài khoản mặc định trong SQL server
{
if (con.State == ConnectionState.Closed)
{
con.ConnectionString = "Server=(local);database=<tên CSDL>;user ID=sa;password=sa";
con.Open();
}
}
// sa là tài khoản mặc định trong SQL server
Parsed in 0.007 seconds, using GeSHi 1.0.8.4
ví dụ : tên CSDL là QLDIEM
Hoặc : đối với CSDL là access
Using csharp Syntax Highlighting
void ketnoi()
{
if (con.State == ConnectionState.Closed)
{
con.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" + " data source= " + Application.StartupPath + "/QUAN_LY_SINH_VIEN.mdb";
con.Open();
}
}
{
if (con.State == ConnectionState.Closed)
{
con.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" + " data source= " + Application.StartupPath + "/QUAN_LY_SINH_VIEN.mdb";
con.Open();
}
}
Parsed in 0.007 seconds, using GeSHi 1.0.8.4
3. Load dữ liệu vào datatable, datagridview, textbox,...
datatable :
- Mã: Chọn tất cả
da.fill(dt);
datagridview:
- Mã: Chọn tất cả
datagridview1.DataSource = dt;
Lấy dữ liệu từ datagridview ra ngoài :
Viết code cho các sự kiện RowHeaderMouseClick,...
Using vbnet Syntax Highlighting
int i = int.Parse(e.RowIndex.ToString());
this.Textbox1.Text = this.Datagridview.Rows<span style="font-style: italic">.Cells[0].Value.ToString();
this.Textbox1.Text = this.Datagridview.Rows<span style="font-style: italic">.Cells[0].Value.ToString();
Parsed in 0.012 seconds, using GeSHi 1.0.8.4
[i]Hoặc có thể dùng datatable:
Using vbnet Syntax Highlighting
this.Textbox1.Text = dt.Rows<span style="font-style: italic">[0].ToString();
Parsed in 0.011 seconds, using GeSHi 1.0.8.4
textbox :
- Mã: Chọn tất cả
textbox1.Databindings.add(new Binding("text",datatable,"<field hiển thị>");
[i]ví dụ:
- Mã: Chọn tất cả
txt_masv.DataBindings.Add(new Binding("text", dt_sinhvien, "MaSV"));
datetimepicker :
- Mã: Chọn tất cả
datetimepicker .add(new Binding("value",datatable,"<field hiển thị>");
ví dụ :
- Mã: Chọn tất cả
datetimepicker .add(new Binding("value",datatable,"NgaySinh");
combobox :
Using csharp Syntax Highlighting
cbo.DataSource = dt;
cbo.ValueMember="datamember";// giá trị Items của combobox
cbo.DisplayMember ="datamember; // tên hiển thị Items
cbo.ValueMember="datamember";// giá trị Items của combobox
cbo.DisplayMember ="datamember; // tên hiển thị Items
Parsed in 0.006 seconds, using GeSHi 1.0.8.4
ví dụ :
Using csharp Syntax Highlighting
cbo_lop.DataSource = dt_sinhvien;
cbo_lop.DisplayMember = "TenLop";
cbo_lop.ValueMember="MaLop";
cbo_lop.DisplayMember = "TenLop";
cbo_lop.ValueMember="MaLop";
Parsed in 0.006 seconds, using GeSHi 1.0.8.4
Giải thích: dữ liệu hiển thị trên cbo là "TenLop" nhưng giá trị nhận đc khi thao tác (click) items của combobox là "MaLop" --> từ từ sẽ hiểu
4. Next, Previous, Last, First, Count
Cách 1 : Dùng "BindingContext "
' Next
- Mã: Chọn tất cả
this.BindingContext[dt].Position += 1;
' Previous
- Mã: Chọn tất cả
this.BindingContext[dt].Position -= 1;
' Last
- Mã: Chọn tất cả
Me.BindingContext[dt].Position = Me.BindingContext.Item(dt).Count - 1;
' First
- Mã: Chọn tất cả
C1: DataGridView1.CurrentCell = DataGridView1["tên hàng", 0];
- Mã: Chọn tất cả
ví dụ : this.dgv_sinhvien.CurrentCell = dgv_sinhvien["MaSV", 0];
- Mã: Chọn tất cả
C2: this.BindingContext[dt_sinhvien].Position = 0;
Cách 2 : Dùng "Bindingsource"
ví dụ : Khi viết code cho button " Next"
Using csharp Syntax Highlighting
BindingSource binding=new BindingSource();
binding.DataSource =dt ;
DataGridView1.DataSource =binding ;
binding.MoveNext();
binding.DataSource =dt ;
DataGridView1.DataSource =binding ;
binding.MoveNext();
Parsed in 0.006 seconds, using GeSHi 1.0.8.4
--> Ý nghĩa : BindingSoure cung cấp các phương thức "MoveNext, MoveFirst,.." , ta chỉ việc khai báo datasource của gián tiếp với dt thông qua DataGridView1Bindingsource là sử dụng đc các giao thức đó
' Count
- Mã: Chọn tất cả
dt.Rows.Count
6. Thêm - Xóa - Sửa
6.1. Thêm :
6.1.1. : Phương pháp : Dùng Commandbuider để thực thi những thay đổi trong datatable
B1 : Khởi tạo hàng mới trong datable
- Mã: Chọn tất cả
DataRow newrow=dt.NewRow();
B2 : đưa dữ liệu vào hàng mới tạo,
Using csharp Syntax Highlighting
newrow["<field>"] = <dữ liệu cần thêm>;
...................................................................
dt.Rows.Add(newrow);
...................................................................
dt.Rows.Add(newrow);
Parsed in 0.006 seconds, using GeSHi 1.0.8.4
B3 : dùng commanbuider thực thi những thay đổi trong datatable
Using csharp Syntax Highlighting
SqlCommandBuilder cb = new SqlCommandBuilder(da);
da.Update(dt);
cb.Dispose();
da.Update(dt);
cb.Dispose();
Parsed in 0.005 seconds, using GeSHi 1.0.8.4
ví dụ :
Using csharp Syntax Highlighting
void them()
{
DataRow newrow = dt_sinhvien.NewRow();
newrow["Masv"] = txt_masv.Text;
newrow["HoTen"] = txt_hoten.Text;
newrow["NgaySinh"] = dtp_ngaysinh.Value;
newrow["QueQuan"] = txt_qq.Text;
newrow["MaLop"] = cbo_lop.SelectedValue;
dt_sinhvien.Rows.Add(newrow);
SqlCommandBuilder cb = new SqlCommandBuilder(da_sinhvien);
da_sinhvien.Update(dt_sinhvien);
cb.Dispose();
MessageBox.Show("xong");
}
{
DataRow newrow = dt_sinhvien.NewRow();
newrow["Masv"] = txt_masv.Text;
newrow["HoTen"] = txt_hoten.Text;
newrow["NgaySinh"] = dtp_ngaysinh.Value;
newrow["QueQuan"] = txt_qq.Text;
newrow["MaLop"] = cbo_lop.SelectedValue;
dt_sinhvien.Rows.Add(newrow);
SqlCommandBuilder cb = new SqlCommandBuilder(da_sinhvien);
da_sinhvien.Update(dt_sinhvien);
cb.Dispose();
MessageBox.Show("xong");
}
Parsed in 0.009 seconds, using GeSHi 1.0.8.4
6.2. Xóa:
6.3.1. Phương pháp 1: Dùng ExecuteNonQuery() hoặc ExecuteScalar() để thực thi trực tiếp command SQl vào CSDL
Using vbnet Syntax Highlighting
void xoa()
{
SqlCommand cmd = new SqlCommand(<lệnh SQL xóa >, con);
cmd.ExecuteNonQuery();
cmd.Dispose();
}
{
SqlCommand cmd = new SqlCommand(<lệnh SQL xóa >, con);
cmd.ExecuteNonQuery();
cmd.Dispose();
}
Parsed in 0.011 seconds, using GeSHi 1.0.8.4
ví dụ :
Using csharp Syntax Highlighting
void xoa()
{
DataRow row = dt_sinhvien.Select("MaSV = '" + txt_masv.Text + "'")[0];
SqlCommand cmd = new SqlCommand("delete from tbl_SinhVien where MaSV='" + txt_masv.Text + "'", con);
cmd.ExecuteNonQuery();
row.Delete();
cmd.Dispose();
MessageBox.Show("Xóa xong");
}
{
DataRow row = dt_sinhvien.Select("MaSV = '" + txt_masv.Text + "'")[0];
SqlCommand cmd = new SqlCommand("delete from tbl_SinhVien where MaSV='" + txt_masv.Text + "'", con);
cmd.ExecuteNonQuery();
row.Delete();
cmd.Dispose();
MessageBox.Show("Xóa xong");
}
Parsed in 0.008 seconds, using GeSHi 1.0.8.4
6.3. Sửa :
6.3.1. Phương pháp 1: Dùng câu lệnh thực thi ExecuteNonQuery
Using csharp Syntax Highlighting
string sql= "Update <tên table> set field1= 'giá trị 1', field2= 'giá trị 2',....."
SqlCommand cmd = new SqlCommand(sql, con);
cmd.ExecuteNonQuery();
SqlCommand cmd = new SqlCommand(sql, con);
cmd.ExecuteNonQuery();
Parsed in 0.008 seconds, using GeSHi 1.0.8.4
ví dụ :
Using csharp Syntax Highlighting
void sua()
{
string sql ;
sql= "update tbl_SinhVien set MaSV='" + txt_masv .Text + "',HoTen='" + txt_hoten.Text + "',NgaySinh='" + dtp_ngaysinh.Value + "',MaLop='" + cbo_lop.SelectedValue + "',QueQuan='" + txt_qq.Text + "'";
SqlCommand cmd = new SqlCommand(sql, con);
cmd.ExecuteNonQuery();
MessageBox .Show ("Sửa xong");
}
{
string sql ;
sql= "update tbl_SinhVien set MaSV='" + txt_masv .Text + "',HoTen='" + txt_hoten.Text + "',NgaySinh='" + dtp_ngaysinh.Value + "',MaLop='" + cbo_lop.SelectedValue + "',QueQuan='" + txt_qq.Text + "'";
SqlCommand cmd = new SqlCommand(sql, con);
cmd.ExecuteNonQuery();
MessageBox .Show ("Sửa xong");
}
Parsed in 0.008 seconds, using GeSHi 1.0.8.4
p/s: Mong được sự góp ý của mọi người để bài viết hoàn thiện hơn.




