Khai báo và sử dụng thamsố

Một phần của tài liệu Giáo trình lập trình cơ sở dữ liệu (Trang 129 - 131)

- Về thái độ:

a. Khai báo và sử dụng thamsố

Trong CommandText có thể sử dụng các tham số để thay thế cho các giá trị chưa xác định và khi thực hiện sẽ dùng đối tượng Parameter để truyền giá trị vào chỗ các dấu hỏi. Tùy theo Command, Parameter sẽ khai báo từ lớp OledbParameter hay SqlParameter. Tại vị trí cần thay bằng tham số sẽ để dấu ? nếu là lớp OledbParameter và để @tên_biến_thamsố nếu là SqlParameter

Các cú pháp khai báo tham số:

Dim <tên parameter> As New loại_tham_số()

Trong đó loại_tham_số là OledbParameter hoặc SqlParameter Hoặc

Dim <tên parameter> As New loại_tham_số(tên_ts) Hoặc

Dim <tên parameter> As New loại_tham_số (tên_ts, giá trị) Hoặc

Dim <tên parameter> As New loại_tham_số = biến_command.CreateParameter

Các thuộc tính của tham số

Tên Mô tả

Direction Giá trị cho biết loại tham số với các giá trị sau: (đọc ghi) ฀ Input (mặc định): loại tham số đầu vào

฀ InputOutput: loại tham số vào và ra ฀ Output: loại tham số đầu ra

฀ ReturnValue: loại tham số nhận giá trị trả về của một thủ tục nội, một hàm, hay một hàm do người dùng định nghĩa.

OleDbType SqlDbType

Kiểu dữ liệu OleDb hoặc SqlDb của tham số (đọc ghi) ParameterName Tên tham số (đọc ghi)

Value Giá trị của tham số (đọc ghi)

129 Thiết kế form như hình dưới đây. Nút Thống kê kết nối đến cơ sở dữ liệu SQL De1 trên server HTC-VAIO\Huyen và hiển thị số lần bán hàng trong textbox txtcount và tổng số tiền bán hàng của nhân viên trong textbox txtsum. Tên nhân viên (textbox1) được định nghĩa là tham số.

Tạo tham số với Command để hiển thị số lần bán hàng: ' tạo và mở connection

Tao_ket_noi() Ket_noi.Open()

' hiển thị số lần bán hàng

Dim lenhsql as string = "select count(sohd) from banhang " & _ "where nguoiban=@nb"

Dim cmdcount As New SqlClient.SqlCommand(lenhsql,Ket_noi)

Dim thamsonb As SqlClient.SqlParameter = cmdcount.CreateParameter thamsonb.ParameterName = "@nb" thamsonb.Value = TextBox1.Text cmdcount.Parameters.Add(thamsonb) txtcount.Text = cmdcount.ExecuteScalar() ' đóng kết nối Ket_noi.Close()

Ta có thể viết đoạn mã tương tự để hiển thị tổng số tiền bán hàng với tên nhân viên là tham số. Hoặc sử dụng cách viết như sau: (dùng chung tham số @nb cho đối tượng command có command text thay đổi theo câu lệnh SQL tương ứng).

' tạo và mở connection Tao_ket_noi()

130 ' hiển thị số lần bán hàng

Dim cmd As New SqlClient.SqlCommand

cmd.CommandText = "select count(sohd) from banhang where " & _ "nguoiban=@nb"

cmd.Connection = Ket_noi

Dim thamsonb As SqlClient.SqlParameter = cmd.CreateParameter thamsonb.ParameterName = "@nb"

thamsonb.Value = TextBox1.Text cmd.Parameters.Add(thamsonb)

txtcount.Text = cmd.ExecuteScalar() ' hiển thị tổng số tiền bán hàng

cmd.CommandText = "select sum(thanhtien) from banhang where " & _ "nguoiban=@nb"

txtsum.Text = cmd.ExecuteScalar() ' đóng kết nối

Ket_noi.Close()

Khi sử dụng OLEDBCommand thì câu lệnh SQL thay đổi như sau:

lenh.CommandText = "Select sum(thanhtien) from banhang " & _ where nguoiban = ?"

Dim thamso As OleDbParameter = lenh.CreateParameter() thamso.Value = "An"

lenh.Parameters.Add(thamso)

Một phần của tài liệu Giáo trình lập trình cơ sở dữ liệu (Trang 129 - 131)