You are on page 1of 8

ADO.

NET
Mục đích
• Thực tập kết nối, thao tác dữ liệu bằng nhiều cách thông qua thư viện ADO.NET.
• Tạo project như sau:

1. Khai báo thư viện


using System.Data.SqlClient;

2. Lấy chuỗi kết nối

1
3. Kết nối cơ sở dữ liệu
//Khai báo và khởi tạo biến kết nối
SqlConnection cnn = new SqlConnection("Data Source=.;Initial Catalog=ThuVien;User
ID=sa;Password=726354");
MessageBox.Show("Trạng thái của biến cnn trước khi Open: " + cnn.State.ToString(),
"Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information);

//Mở kết nối


cnn.Open();
MessageBox.Show("Trạng thái của biến cnn sau khi Open: " + cnn.State.ToString(),
"Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information);

// Thực hiện các câu lệnh SELECT, INSERT, DELETE, UPDATE để thao tác dữ liệu
//..................................

//Đóng kết nối


cnn.Close();
MessageBox.Show("Trạng thái của biến cnn sau khi Close: " + cnn.State.ToString(),
"Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information);

2
4. Kết nối, thao tác dữ liệu, sử dụng đối tượng Command với câu lệnh SELECT

COUNT(*)
//Khai báo và khởi tạo biến kết nối
SqlConnection cnn = new SqlConnection("Data Source=.;Initial Catalog=ThuVien;User
ID=sa;Password=726354");

//Khai báo và khởi tạo biến Command


SqlCommand cmd = new SqlCommand();

//Khai báo biến Command sử dụng Connection nào để đến database?


cmd.Connection = cnn;

//Biến Commnad thao tác với database bằng (1.Câu lệnh, 2.Tên bảng, 3.Tên Store) nào?
cmd.CommandText = "SELECT COUNT(*) FROM BANGCAP";

//Cho biết CommandText chính là câu lệnh.


cmd.CommandType = CommandType.Text;

//Mở kết nối


cnn.Open();

// Lấy dữ liệu về bằng phương thức ExecuteScalar.


int count = (int)cmd.ExecuteScalar();
MessageBox.Show("Tổng số bằng cấp: " + count.ToString(), "Thông báo", MessageBoxButtons.OK,
MessageBoxIcon.Information);
//Đóng kết nối
cnn.Close();

5. Kết nối, thao tác dữ liệu, sử dụng đối tượng Command với câu lệnh INSERT,

UPDATE, DELETE
INSERT
//Khai báo và khởi tạo biến kết nối
SqlConnection cnn = new SqlConnection("Data Source=.;Initial Catalog=ThuVien;User
ID=sa;Password=726354");

//Khai báo và khởi tạo biến Command


SqlCommand cmd = new SqlCommand();

//Khai báo biến Command sử dụng Connection nào để đến database?


cmd.Connection = cnn;

//Biến Commnad thao tác với database bằng (1.Câu lệnh, 2.Tên bảng, 3.Tên Store) nào?
cmd.CommandText = "INSERT INTO BANGCAP VALUES(8,N'Giáo sư')";

//Cho biết CommandText chính là câu lệnh.


cmd.CommandType = CommandType.Text;

//Mở kết nối


cnn.Open();

// Thực thi câu lệnh Insert


int rowsAffected = cmd.ExecuteNonQuery();
MessageBox.Show("Tổng số dòng ảnh hưởng: " + rowsAffected.ToString(), "Thông báo",
MessageBoxButtons.OK, MessageBoxIcon.Information);
//Đóng kết nối
cnn.Close();

UPDATE
//Khai báo và khởi tạo biến kết nối
SqlConnection cnn = new SqlConnection("Data Source=.;Initial Catalog=ThuVien;User
ID=sa;Password=726354");

//Khai báo và khởi tạo biến Command


SqlCommand cmd = new SqlCommand();

//Khai báo biến Command sử dụng Connection nào để đến database?


cmd.Connection = cnn;

//Biến Commnad thao tác với database bằng (1.Câu lệnh, 2.Tên bảng, 3.Tên Store) nào?
cmd.CommandText = "UPDATE BANGCAP SET TENBANGCAP=N'Phó Giáo Sư' WHERE MABANGCAP=8";

3
//Cho biết CommandText chính là câu lệnh.
cmd.CommandType = CommandType.Text;

//Mở kết nối


cnn.Open();

// Thực thi câu lệnh Insert


int rowsAffected = cmd.ExecuteNonQuery();
MessageBox.Show("Tổng số dòng ảnh hưởng: " + rowsAffected.ToString(), "Thông báo",
MessageBoxButtons.OK, MessageBoxIcon.Information);
//Đóng kết nối
cnn.Close();

DELETE
//Khai báo và khởi tạo biến kết nối
SqlConnection cnn = new SqlConnection("Data Source=.;Initial Catalog=ThuVien;User
ID=sa;Password=726354");

//Khai báo và khởi tạo biến Command


SqlCommand cmd = new SqlCommand();

//Khai báo biến Command sử dụng Connection nào để đến database?


cmd.Connection = cnn;

//Biến Commnad thao tác với database bằng (1.Câu lệnh, 2.Tên bảng, 3.Tên Store) nào?
cmd.CommandText = "DELETE BANGCAP WHERE MABANGCAP=8";

//Cho biết CommandText chính là câu lệnh.


cmd.CommandType = CommandType.Text;

//Mở kết nối


cnn.Open();

// Thực thi câu lệnh Insert


int rowsAffected = cmd.ExecuteNonQuery();
MessageBox.Show("Tổng số dòng ảnh hưởng: " + rowsAffected.ToString(), "Thông báo",
MessageBoxButtons.OK, MessageBoxIcon.Information);
//Đóng kết nối
cnn.Close();

6. Kết nối, thao tác dữ liệu, sử dụng đối tượng Command với câu lệnh SELECT *

trả kết quả về DataReader.


• Tạo ListView lvBangCap
• Vào thuộc tính Columns của ListView lvBangCap, click chọn Collection để Add 2 cột
như sau:

//Khai báo và khởi tạo biến kết nối


SqlConnection cnn = new SqlConnection("Data Source=.;Initial Catalog=ThuVien;User
ID=sa;Password=726354");

4
//Khai báo và khởi tạo biến Command
SqlCommand cmd = new SqlCommand();

//Khai báo biến Command sử dụng Connection nào để đến database?


cmd.Connection = cnn;

//Biến Commnad thao tác với database bằng (1.Câu lệnh, 2.Tên bảng, 3.Tên Store) nào?
cmd.CommandText = "SELECT * FROM BANGCAP";

//Cho biết CommandText chính là câu lệnh.


cmd.CommandType = CommandType.Text;

//Mở kết nối


cnn.Open();

// Lấy dữ liệu về bằng phương thức ExecuteReader.


IDataReader dr = cmd.ExecuteReader();

//Hiển thị dữ liệu từ DataReader lên ListView


lvBangCap.View = View.Details;
lvBangCap.FullRowSelect = true;
lvBangCap.Columns[1].Width = 273;

lvBangCap.Items.Clear();
int i=0;
string str;

while (dr.Read())
{
ListViewItem lvi;
lvi = lvBangCap.Items.Add((++i).ToString());
str = dr["TenBangCap"].ToString();
lvi.SubItems.Add(str);
}
dr.Close();

//Đóng kết nối


cnn.Close();

7. Kết nối, thao tác cơ sở dữ liệu bằng cách viết và gọi store procedure
TẠO STORE LẤY DANH SÁCH BẰNG CẤP
CREATE PROCEDURE GetBangCap
AS
BEGIN
SELECT * FROM BANGCAP
END
GO

//Khai báo và khởi tạo biến kết nối


SqlConnection cnn = new SqlConnection("Data Source=.;Initial Catalog=ThuVien;User
ID=sa;Password=726354");

//Khai báo và khởi tạo biến Command


SqlCommand cmd = new SqlCommand();

//Khai báo biến Command sử dụng Connection nào để đến database?


cmd.Connection = cnn;

//Biến Commnad thao tác với database bằng (1.Câu lệnh, 2.Tên bảng, 3.Tên Store) nào?
cmd.CommandText = "GETBANGCAP";

//Cho biết CommandText chính là câu lệnh.


cmd.CommandType = CommandType.StoredProcedure;

//Mở kết nối


cnn.Open();

// Lấy dữ liệu về bằng phương thức ExecuteReader.


IDataReader dr = cmd.ExecuteReader();

//Hiển thị dữ liệu từ DataReader lên ListView


lvBangCap.View = View.Details;
lvBangCap.FullRowSelect = true;

5
lvBangCap.Columns[1].Width = 273;

lvBangCap.Items.Clear();
int i=0;
string str;

while (dr.Read())
{
ListViewItem lvi;
lvi = lvBangCap.Items.Add((++i).ToString());
str = dr["TenBangCap"].ToString();
lvi.SubItems.Add(str);
}
dr.Close();

//Đóng kết nối


cnn.Close();

8. Kết nối, thao tác cơ sở dữ liệu bằng cách viết và gọi store procedure có truyền

tham số.
CREATE PROCEDURE GETBANGCAPBYMABANGCAP
@MABANGCAP INT
AS
BEGIN
SELECT * FROM BANGCAP WHERE MABANGCAP=@MABANGCAP
END
GO
//Khai báo và khởi tạo biến kết nối
SqlConnection cnn = new SqlConnection("Data Source=.;Initial Catalog=ThuVien;User
ID=sa;Password=726354");

//Khai báo và khởi tạo biến Command


SqlCommand cmd = new SqlCommand();

//Khai báo biến Command sử dụng Connection nào để đến database?


cmd.Connection = cnn;

//Biến Commnad thao tác với database bằng (1.Câu lệnh, 2.Tên bảng, 3.Tên Store) nào?
cmd.CommandText = "GETBANGCAPBYMABANGCAP";

//Cho biết CommandText chính là câu lệnh.


cmd.CommandType = CommandType.StoredProcedure;

//Khai báo và khởi tạo biến Command


SqlParameter parMABANGCAP = new SqlParameter("@MABANGCAP", SqlDbType.Int);
parMABANGCAP.Value = 7;
cmd.Parameters.Add(parMABANGCAP);

//Mở kết nối


cnn.Open();

// Lấy dữ liệu về bằng phương thức ExecuteReader.


IDataReader dr = cmd.ExecuteReader();

//Hiển thị dữ liệu từ DataReader lên ListView


lvBangCap.View = View.Details;
lvBangCap.FullRowSelect = true;
lvBangCap.Columns[1].Width = 273;

lvBangCap.Items.Clear();
int i=0;
string str;

while (dr.Read())
{
ListViewItem lvi;
lvi = lvBangCap.Items.Add((++i).ToString());
str = dr["TenBangCap"].ToString();
lvi.SubItems.Add(str);
}
dr.Close();

//Đóng kết nối


cnn.Close();

6
9. Kết nối cơ sở dữ liệu + sử dụng DataAdapter + update dữ liệu
//Khai báo và khởi tạo biến kết nối
SqlConnection cnn = new SqlConnection("Data Source=.;Initial Catalog=ThuVien;User
ID=sa;Password=726354");

SqlDataAdapter da = new SqlDataAdapter("select * from bangcap", cnn);

SqlCommandBuilder commandBuilder = new SqlCommandBuilder(da);

DataSet ds = new DataSet();

da.Fill(ds);
foreach (DataRow row in ds.Tables[0].Rows)
if (row["MaBangCap"] == "7")
{
row["TenBangCap"] = "Giáo sư";
}

MessageBox.Show(ds.Tables[0].Rows[2].ItemArray[1].ToString());
dataGridView1.DataSource = ds.Tables[0];

//Không sử dụng SqlCommandBuilder thì không thể update dữ liệu.


da.Update(ds);

10. Kết nối cơ sở dữ liệu + sử dụng DataAdapter + gọi store


protected void Button9_Click(object sender, EventArgs e)
{
SqlConnection cnn = new SqlConnection("server=DUONGVUNGOCLAN;
database=WebNews; user id=sa; password=longnamit726354");
//Khai báo và khởi tạo SqlDataAdapter
SqlDataAdapter da = new SqlDataAdapter("GETLINHVUC", cnn);
//Khai báo và khởi tạo DataSet
DataSet ds = new DataSet();
//Lấy dữ liệu trả về đổ vào dataset ds
da.Fill(ds);

TextBox11.Text = ds.Tables[0].Rows[2].ItemArray[1].ToString();
GridView2.DataSource = ds.Tables[0];
GridView2.DataBind();
}
11. Kết nối cơ sở dữ liệu + sử dụng DataAdapter + gọi store + truyền tham số
//Khai báo và khởi tạo biến kết nối
SqlConnection cnn = new SqlConnection("Data Source=.;Initial Catalog=ThuVien;User
ID=sa;Password=726354");

SqlCommand cmd = new SqlCommand("LAYDANHSACHBANGCAPTHEOMABANGCAP", cnn);

cmd.Connection = cnn;

cmd.CommandType = CommandType.StoredProcedure;

//Khai báo và khởi tạo tham số


SqlParameter parMALINHVUC = new SqlParameter("@MABANGCAP", SqlDbType.Int);
parMALINHVUC.Value = "7";
cmd.Parameters.Add(parMALINHVUC);

cnn.Open();

SqlDataAdapter da = new SqlDataAdapter();

da.SelectCommand = cmd;

DataSet ds = new DataSet();

da.Fill(ds);

dataGridView1.DataSource = ds.Tables[0];

7
cnn.Close();

12. Kết nối cơ sở dữ liệu + sử dụng DataAdapter + đối số là Command


protected void Button10_Click(object sender, EventArgs e)
{
SqlConnection cnn = new SqlConnection("server=DUONGVUNGOCLAN;
database=WebNews; user id=sa; password=longnamit726354");

SqlCommand cmd = new SqlCommand("GETLINHVUC", cnn);

cmd.Connection = cnn;

cmd.CommandType = CommandType.StoredProcedure;

cnn.Open();

SqlDataAdapter da = new SqlDataAdapter();

da.SelectCommand = cmd;
//da.InsertCommand = cmd;
//da.DeleteCommand = cmd;
//da.UpdateCommand = cmd;

DataSet ds = new DataSet();


da.Fill(ds);

GridView4.DataSource = ds.Tables[0];
GridView4.DataBind();

cnn.Close();
}
}

You might also like