SQLDataReader
SqlCommand
Quá trình tương tác v i CSDL c n ph i bi t hành đ ng nào ớ ầ ả ế ộ b n mu n x y ra. ạ ố ả
Đi u này đề ược th c hi n b i đ i tự ệ ở ố ượng SqlCommand. Ta sẽ dùng đ i tố ượng SqlCommand đ g i m t câu l nh SQL t i ể ử ộ ệ ớ database.
SqlCommand dùng m t đ i tộ ố ượng connection đ xác đ nh ể ị database nào sẽ được truy xu t. Ta có th dùng m t đ i ấ ể ộ ố tượng command riêng l đ th c thi l nh tr c ti p, ho c đ ẻ ể ự ệ ự ế ặ ể g n m t tham chi u c a đ i tắ ộ ế ủ ố ượng command cho m t ộ SqlDataAdapter.
Th c hi n SqlCommand có th tr t p d li u ho c khôngự ệ ể ả ậ ữ ệ ặ
Command
T o Commandạ
Các thu c tính c a Commandộ ủ
T o Commandạ
Cú Pháp:
Dim <bi n Command> As New <lo i>Command()ế ạ
<bi n Command>.Connection = <bi n Connection>ế ế
<bi n Command>.CommandText = <l nh>ế ệ VD:
Dim command as new SqlCommand();
command.Connection = sqlConnection;
sqlCommand.CommandText = "select count(*) from SanPham";
Các thu c tính c a Commandộ ủ
Tên Mô tả
CommandText Lệnh SQL, tên bảng hoặc tên thủ tục muốn thực hiện trên nguồn dữ liệu. (đọc ghi)
CommandType Giá trị cho biết nội dung CommandText là gì với các giá trị sau:
Text: (mặc định) một câu lệnh SQL Storeprocedure: tên một thủ tục nội
…
Connection Đối tượng Connection sử dụng cho Command
Parameters Tập hợp các tham số dung trong Command Transaction Giao tác mà trên đó Command đang thực
hiện
Th c hi n Commandự ệ
ExecuteScalar
Ch c năng: ứ Th c hi n l nh c a Command ự ệ ệ ủ và ch tr v giá ỉ ả ề tr c a c t đ u tiên và dòng đ u tiênị ủ ộ ầ ầ . Thường được dung khi mu n Commannd th c hi n các hàm tính toán th ng kê nh ố ự ệ ố ư Sum, AVG, Max, Min, Count, … trên ngu n d li u ngay lúc ồ ữ ệ th c thi.ự
Th c hi n Commandự ệ
VD: Đ m s lế ố ượng nhà cung c p (NCC) trong b ng NhaCCấ ả Dim strconn As String
strconn = "Data Source=ADMINPC\SQLEXPRESS;Initial Catalog=CsdlSPJ;Integrated Security=True"
Dim conn As New SqlConnection(strconn) conn.Open()
Dim Command as new SqlCommand()
Command.CommandType = CommandType.Text;
Command.CommandText = "select count(*) from NCC";
Command.Connection = conn;
Dim soNCC=sqlCommand.ExecuteScalar();
Th c hi n Commandự ệ
ExecuteReader
Ch c năng: ứ Phương th c này tr v m t đ i tứ ả ề ộ ố ượng DataReader đ đ c d li u m i l n m t dòng v i phể ọ ữ ệ ỗ ầ ộ ớ ương th c Read(). DataReader đ c d li u tr c ti p t ngu n d ứ ọ ữ ệ ự ế ừ ồ ữ li u nên ph i duy trì k t n i cho đ n khi đ c xong.ệ ả ế ố ế ọ
Th c hi n Command (code- tìm ki m)ự ệ ế
Cú pháp:
conn = New SqlConnection(strconn)
If conn.State = ConnectionState.Closed Then conn.Open()
End If
Dim command As New SqlCommand()
command.CommandType = CommandType.Text
command.CommandText = "select * from Duan where mada='" & txtTimkiem.Text & "'"
command.Connection = conn
Dim reader As SqlDataReader = command.ExecuteReader() If reader.Read() Then
txtMada.Text = reader.GetString(0) txtTenda.Text = reader.GetString(1) txtTP.Text = reader.GetString(2)
End If
Th c hi n Command, đ d li u vào listviewự ệ ổ ữ ệ
conn = New SqlConnection(strconn) conn.Open()
Dim command As New SqlCommand()
command.CommandType = CommandType.Text command.CommandText = "Select * from duan"
command.Connection = conn
Dim reader As SqlDataReader = command.ExecuteReader() lvDuan.Items.Clear()
While reader.Read()
Dim lvi As ListViewItem = New ListViewItem(reader.GetString(0)) lvi.SubItems.Add(reader.GetString(1))
lvi.SubItems.Add(reader.GetString(2)) lvDuan.Items.Add(lvi)
End While
reader.Close()
Th c hi n Commandự ệ
ExecuteNonquery
Ch c năng: ứ Đ g i th c hi n các câu truy v n c p nh t ể ọ ự ệ ấ ậ ậ INSERT, UPDATE, DELETE,... hay th t c n i không tr v d ủ ụ ộ ả ề ữ li u ho c khi chúng ta không quan tâm đ n d li u tr v . ệ ặ ế ữ ệ ả ề Tuy không tr v d li u, nh ng các tham s đ u ra, tr v ả ề ữ ệ ư ố ầ ả ề đ u ch a d li u (n u có). V i các l nh INSERT, UPDATE, ề ứ ữ ệ ế ớ ệ DELETE, phương th c này tr v s dòng ch u tác đ ng c a ứ ả ề ố ị ộ ủ Command, ngượ ạc l i phương th c tr v -1ứ ả ề
Thêm d li u ữ ệ
conn = New SqlConnection(strconn)
If conn.State = ConnectionState.Closed Then conn.Open()
End If
Dim cmd As New SqlCommand()
cmd.CommandType = CommandType.Text cmd.CommandText = "insert into
duan(mada,ten,thpho) values('" & txtMada.Text &
"','" & txtTenda.Text & "','" & txtTP.Text & "')"
cmd.Connection = conn
Dim ret As Integer = cmd.ExecuteNonQuery If ret > 0 Then
MessageBox.Show("thêm ok") Else
MessageBox.Show("không ok") End If
S a d li u ử ữ ệ
conn = New SqlConnection(strconn)
If conn.State = ConnectionState.Closed Then conn.Open()
End If
Dim cmd As New SqlCommand()
cmd.CommandType = CommandType.Text
cmd.CommandText = "update duan set ten='" &
txtTenda.Text & "',thpho='" & txtTP.Text & "' where mada='" & txtMada.Text & "'"
cmd.Connection = conn
Dim ret As Integer = cmd.ExecuteNonQuery If ret > 0 Then
MessageBox.Show("thêm ok") Else
MessageBox.Show("không ok") End If
Xóa d li u ữ ệ
conn = New SqlConnection(strconn)
If conn.State = ConnectionState.Closed Then conn.Open()
End If
Dim cmd As New SqlCommand()
cmd.CommandType = CommandType.Text
cmd.CommandText = "delete from duan where mada='" & txtMada.Text & "'"
cmd.Connection = conn
Dim ret As Integer = cmd.ExecuteNonQuery If ret > 0 Then
MessageBox.Show("Đã xóa") Else
MessageBox.Show("Không thêể xóa") End If