1. Trang chủ
  2. » Công Nghệ Thông Tin

Bài giảng Lập trình trên Windows: Chương 5.4 - Trần Minh Thái

22 10 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 22
Dung lượng 93,27 KB

Nội dung

Bài giảng Lập trình trên Windows: Chương 5.4 Truy vấn có tham số cung cấp cho người học các kiến thức: Nhu cầu cần có truy vấn có tham số, các bước tạo truy vấn có tham số, gọi Stored Procedure. Mời các bạn cùng tham khảo.

Lập trình Windows Chương 5.4 Truy vấn có tham số Nội dung • Nhu cầu cần có truy vấn có tham số • Các bước tạo truy vấn có tham số • Gọi Stored Procedure Nhu cầu cần có truy vấn có tham số • Tìm kiếm dòng liệu CSDL theo điều kiện người dùng nhập vào • Ví dụ: Tìm kiếm xem nhân viên có CSDL phép đăng nhập vào chương trình string strUser, strPass; strUser = txtUser.Text; strPass = txtPass.Text; string strSQL; strSQL = "select * from NhanVien where " + "username='" + strUser + "' and " + "password='" + strPass + "'"; Nhu cầu cần có truy vấn có tham số • Những vị trí lệnh SQL cần liệu người dùng (parameter placeholders) • Bất kỳ liệu truyền vào tham số đối xử liệu túy (không phải câu lệnh SQL) Các bước tạo truy vấn có tham số • Bước 1: Xây dựng câu SQL có tham số • Bước 2: Khai báo đối tượng SqlParameter, gán giá trị tương ứng • Bước 3: Gán đối tượng SqlParameter cho thuộc tính Parameters đối tượng SqlCommand Các bước tạo truy vấn có tham số • Bước 1:Xây dựng văn câu SQL có tham số • Những nơi cần liệu người dùng tạo parameter placeholder • Tên parameter placeholder: @ten Parameter placeholder  Cú pháp: strSQL = "select … where cot1 = @ten1 …"  Ví dụ: strSQL = "select * from NhanVien where " + “manv=@user and matkhau=@pass"; Các bước tạo truy vấn có tham số • Bước 2: Khai báo đối tượng SqlParameter, gán giá trị tương ứng • Mỗi parameter placeholder tương ứng với đối tượng SqlParameter  Cú pháp: SqlParameter param; param param param param = = = = new new new new SqlParameter(); SqlParameter(string paramName, object value); SqlParameter(string paramName, SqlDbType dbType); SqlParameter(string paramName, SqlDbType dbType, int size); Các bước tạo truy vấn có tham số • Một số loại kiểu liệu tham số: SqlDbType • Số • • • • • • • • TinyInt = Byte SmallInt = Int16 Int = Int32 BigInt = Int64 Real = Single Float = Double Decimal = Decimal Money = Decimal • Chuỗi – Char = String – NChar = String – Text = String – NText = String – NVarChar = String • Kiểu khác – Bit = Boolean – DateTime = DateTime Các bước tạo truy vấn có tham số • Một số property SqlParameter • • • • string param.ParameterName SqlDbType param.SqlDbType object param.Value int param.Size Các bước tạo truy vấn có tham số • Ví dụ SqlParameter paramMaNV, paramMatKhau; paramMaNV = new SqlParameter(); paramMaNV.SqlDbType = SqlDbType.VarChar; paramMaNV.ParameterName = "@user"; paramMaNV.Value = strMaNV; paramMatKhau = new SqlParameter(); paramMatKhau.SqlDbType = SqlDbType.VarChar; paramMatKhau.ParameterName = "@pass"; paramMatKhau.Value = strMatKhau; 10 Các bước tạo truy vấn có tham số • Bước 3: Gán đối tượng SqlParameter cho thuộc tính Parameters đối tượng SqlCommand SqlCommand cmd; SqlParameter param; … cmd.Parameters.Add(param); cmd.Parameters.Add(string paramName, SqlDbType dbType); cmd.Parameters.Add(string paramName, SqlDbType dbType, int size); 11 Gọi Stored Procedure • Khái niệm Stored Procedure – SP • Tạo Stored Procedure • Gọi SP khơng có tham số • Gọi SP có tham số input (vào) • Gọi SP có tham số output (ra) 12 Gọi Stored Procedure Khái niệm Stored Procedure • SP thủ tục định nghĩa trước lưu trữ CSDL để người dùng sẵn sàng dùng • Đặc điểm SP • SQL Server biên dịch Stored Procedure • Gọi SP chạy nhanh việc xây dựng câu truy vấn code • SP bảo mật 13 Gọi Stored Procedure Tạo Stored Procedure – SP • Cú pháp tạo SP CREATE PROCEDURE usp_TenSP /* ( @parameter1 datatype = defaultvalue, @parameter2 datatype OUTPUT ) */ AS /* SET NOCOUNT ON */ RETURN 14 Gọi Stored Procedure Gọi SP khơng có tham số • bước gọi SP khơng tham số: • Bước 1: Chỉ rõ tên SP thuộc tính CommandText đối tượng Command SqlCommand cmd; … cmd.CommandText = “usp_TenStoredProcedure” • Bước 2: Chỉ cho đối tượng Command biết muốn thực thi Stored Procedure cmd.CommandType = CommandType.StoredProcedure 15 Gọi Stored Procedure Gọi SP khơng có tham số • Ví dụ: create procedure usp_LayDSNhanVien as select * from NhanVien return string strSP = “usp_LayDSNhanVien”; SqlCommand cmd = new SqlCommand(strSP, conn); cmd.CommandType = CommandType.StoredProcedure; SqlDataAdapter daNhanVien = new SqlDataAdapter(cmd); DataTable dtNhanVien = new DataTable(); daNhanVien.Fill(dtNhanVien); // Cách //conn.Open(); //SqlDataReader dr = cmd.ExecuteReader(); 16 Gọi Stored Procedure Gọi SP có tham số input (vào) • bước gọi SP có tham số input: • Bước 1, 2: giống trước • Bước 3: Thêm đối tượng tham số SqlParameter vào đối tượng command (Tên tham số giống tên tham số SP) cmd.Parameters.Add(“@TenThamSo”, kieu, kichthuoc); cmd.Parameters[“@TenThamSo”].value = giatri; 17 Gọi Stored Procedure Gọi SP có tham số input (vào) • Ví dụ: create procedure usp_TimNhanVienTheoTen (@ten nvarchar(20)) as select * from NhanVien where ten = @ten return string sqlSP = "usp_TimNhanVienTheoTen"; conn = new SqlConnection(strConn); SqlCommand cmd = new SqlCommand(sqlSP, conn); cmd.CommandType = CommandType.StoredProcedure; cmd.Parameters.Add("@Ten", SqlDbType.NVarChar, 20); cmd.Parameters["@Ten"].Value=giatri; 18 Gọi Stored Procedure Gọi SP có tham số output (ra) • Tương tự SP có tham số input • Nhưng bước phải rõ tham số output thuộc tính Direction đối tượng SqlParameter SqlParameter param; … param.Direction = ParameterDirection.Output 19 Gọi Stored Procedure Gọi SP có tham số output (ra) • Ví dụ: create procedure usp_TimTenNhanVienTheoMa (@manv nvarchar(20), @ten nvarchar(20) output) as select @ten=ten from NhanVien where manv=@manv return 20 Gọi Stored Procedure Gọi SP có tham số output (ra) string sqlSP = "usp_TimTenNhanVienTheoMa"; conn = new SqlConnection(strConn); SqlCommand cmd = new SqlCommand(sqlSP, conn); cmd.CommandType = CommandType.StoredProcedure; SqlParameter paramTen = new SqlParameter(); paramTen.Direction = ParameterDirection.Output; paramTen.ParameterName ="@ten"; paramTen.SqlDbType = SqlDbType.NVarChar; paramTen.Size = 20; cmd.Parameters.Add(paramTen); cmd.Parameters.Add("@MaNV", SqlDbType.NVarChar, 20); cmd.Parameters["@MaNV"].Value = "NV001"; conn.Open(); cmd.ExecuteReader(); conn.Close(); string ten = cmd.Parameters["@ten"].Value.ToString(); 21 Q&A 22 22 ... theo điều kiện người dùng nhập vào • Ví dụ: Tìm kiếm xem nhân viên có CSDL phép đăng nhập vào chương trình string strUser, strPass; strUser = txtUser.Text; strPass = txtPass.Text; string strSQL;

Ngày đăng: 08/05/2021, 11:52