Bạn muốn thêm 1 bản ghi vào table sinhvien này với masv và tensv nhập từ textbox, bạn phải làm gì?
Bạn muốn xóa 1 sinh viên có mã 001 trong csdl, bạn phải làm gì?
Bạn muốn thay đổi tên 1 sinh viên có mã 001, bản phải làm gì?
=> bạn phải viết các lệnh truy vấn trong sql và thực thi nó.
Để làm được điều này trong C#, chúng ta có lớp SqlCommand dùng để thực thi các lệnh sql.
Tạo một đối tượng mới:
SqlCommand cmd=new SqlCommand(string commandText,SqlConnection con);
2 thuộc tính quan trọng của SqlCommand là commandText và connection của nó.
Commandtext là lệnh sql mà bạn cần để thực thi
Connection là 1 đối tượng SqlConnection và trước đó phải được open
Ví dụ:
SqlConnection con=new SqlConnection(connectstring);
con.Open();
SqlCommand cmd=new SqlCommand("Insert into sinhvien values('002','sinhvien2')",con);
Vậy để thực hiện câu lệnh truy vấn này, chúng ta có những cách nào?
Chúng ta có 4 cách thực thi câu lệnh này, mỗi cách sẽ có ra kết quả khác nhau tùy vào phương thức thực thi mà ta lựa chọn
ExecuteNonQuey() : Không trả về gì vì không phải query
ExecuteScalar() : Một giá trị duy nhất
ExecuteReader() : Không hoặc nhiều hàng
ExecuteXmlReader: XML
Vậy dùng chúng trong các trường hợp nào?
- ExecuteNonQuey(): Dùng với các lệnh insert, update, delete dữ liệu
Ví dụ:
SqlConnection con=new SqlConnection(connectstring);
con.Open();
SqlCommand cmd=new SqlCommand("Insert into sinhvien values('002','sinhvien2')",con);
cmd.ExecuteNonquery();
Sau lệnh trên 1 bản ghi mới sẽ được insert vào bảng sinhvien.
- ExecuteScalar(): Dùng trong trường hợp muốn trả về 1 giá trị từ lệnh truy vấn
ví dụ:
SqlConnection con=new SqlConnection(connectstring);
con.Open();
SqlCommand cmd=new SqlCommand("select tensv from sinhvien where masv='001'",con);
string ketqua=cmd.ExecuteScalar().ToString();
Sau lệnh trên, biến ketqua sẽ lấy được tên của sinhvien có mã 001.
- ExecuteReader():Dùng khi ta muốn đọc lần lượt các bản ghi trong csdl và xử lí chúng.
Để hiểu rõ hơn mời các bạn download video này: Download
Chúc các bạn thành công!
0 comments:
Post a Comment