Tài liệu Bài giảng Lập trình Windows - Chương 5.4: Truy vấn có tham số: Lập trình WindowsChương 5.4. Truy vấn có tham số1Nội dungNhu 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 ProcedureNhu cầu cần có truy vấn có tham sốTìm kiếm các dòng dữ liệu trong CSDL theo một điều kiện nào đó do người dùng nhập vàoVí dụ: Tìm kiếm xem nhân viên có trong CSDL để cho 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 dữ liệu người dùng (parameter placeholders)Bất kỳ dữ liệu gì được truyền vào tham số sẽ được đối xử như là dữ liệu thuần túy (không phải là 1 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 ứngBước 3: Gán đối tượng SqlParameter cho thuộc tính Parameters của đối tượng SqlCommandCác bước tạo truy vấn có t...
22 trang |
Chia sẻ: putihuynh11 | Lượt xem: 583 | Lượt tải: 0
Bạn đang xem trước 20 trang mẫu tài liệu Bài giảng Lập trình Windows - Chương 5.4: Truy vấn có tham số, để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
Lập trình WindowsChương 5.4. Truy vấn có tham số1Nội dungNhu 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 ProcedureNhu cầu cần có truy vấn có tham sốTìm kiếm các dòng dữ liệu trong CSDL theo một điều kiện nào đó do người dùng nhập vàoVí dụ: Tìm kiếm xem nhân viên có trong CSDL để cho 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 dữ liệu người dùng (parameter placeholders)Bất kỳ dữ liệu gì được truyền vào tham số sẽ được đối xử như là dữ liệu thuần túy (không phải là 1 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 ứngBước 3: Gán đối tượng SqlParameter cho thuộc tính Parameters của đối tượng SqlCommandCác bước tạo truy vấn có tham sốBước 1:Xây dựng văn bản câu SQL có tham sốNhững nơi cần dữ liệu người dùng chúng ta tạo một parameter placeholderTên parameter placeholder: @tenstrSQL = "select where cot1 = @ten1 "Ví dụ:Cú pháp:strSQL = "select * from NhanVien where " + “manv=@user and matkhau=@pass";Parameter placeholderCá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 ứngMỗi parameter placeholder tương ứng với một đối tượng SqlParameterSqlParameter param;param = new SqlParameter();param = new SqlParameter(string paramName, object value);param = new SqlParameter(string paramName, SqlDbType dbType);param = new SqlParameter(string paramName, SqlDbType dbType, int size);Cú pháp:Các bước tạo truy vấn có tham sốMột số loại kiểu dữ liệu của tham số: SqlDbTypeSố TinyInt = ByteSmallInt = Int16Int = Int32BigInt = Int64Real = SingleFloat = DoubleDecimal = DecimalMoney = DecimalChuỗiChar = StringNChar = StringText = StringNText = StringNVarChar = StringKiểu khácBit = BooleanDateTime = DateTimeCác bước tạo truy vấn có tham sốMột số property của SqlParameterstring param.ParameterNameSqlDbType param.SqlDbTypeobject param.Valueint param.SizeCá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;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 của đối tượng SqlCommandSqlCommand cmd;SqlParameter param;cmd.Parameters.Add(param);cmd.Parameters.Add(string paramName, SqlDbType dbType);cmd.Parameters.Add(string paramName, SqlDbType dbType, int size);Gọi Stored ProcedureKhái niệm Stored Procedure – SP Tạo Stored ProcedureGọi SP không có tham sốGọi SP có tham số input (vào)Gọi SP có tham số output (ra)Gọi Stored ProcedureKhái niệm Stored Procedure SP là 1 thủ tục được định nghĩa trước và được lưu trữ trong CSDL để người dùng sẵn sàng dùng Đặc điểm của SPSQL Server biên dịch Stored ProcedureGọi SP chạy sẽ nhanh hơn việc xây dựng câu truy vấn trong code SP bảo mật hơnGọi Stored ProcedureTạo Stored Procedure – SP Cú pháp tạo SPCREATE PROCEDURE usp_TenSP/* ( @parameter1 datatype = defaultvalue, @parameter2 datatype OUTPUT )*/AS /* SET NOCOUNT ON */RETURNGọi Stored ProcedureGọi SP không có tham số2 bước gọi SP không tham số:Bước 1: Chỉ rõ tên SP trong thuộc tính CommandText của đối tượng CommandSqlCommand cmd;cmd.CommandText = “usp_TenStoredProcedure”Bước 2: Chỉ cho đối tượng Command biết chúng ta đang muốn thực thi 1 Stored Procedurecmd.CommandType = CommandType.StoredProcedureGọi Stored ProcedureGọi SP không có tham sốVí dụ:create procedure usp_LayDSNhanVienas select * from NhanVien returnstring 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 2//conn.Open();//SqlDataReader dr = cmd.ExecuteReader();Gọi Stored ProcedureGọi SP có tham số input (vào)3 bước gọi SP có tham số input:Bước 1, 2: giống như 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ố trong SP)cmd.Parameters.Add(“@TenThamSo”, kieu, kichthuoc);cmd.Parameters[“@TenThamSo”].value = giatri;Gọi Stored ProcedureGọi SP có tham số input (vào)Ví dụ: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;create procedure usp_TimNhanVienTheoTen (@ten nvarchar(20))as select * from NhanVien where ten = @ten returnGọi Stored ProcedureGọi SP có tham số output (ra)Tương tự SP có tham số inputNhưng bước 3 phải chỉ rõ tham số nào là output bằng thuộc tính Direction của đối tượng SqlParameterSqlParameter param;param.Direction = ParameterDirection.OutputGọi Stored ProcedureGọ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=@manvreturnGọi Stored ProcedureGọ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();Q&A22
Các file đính kèm theo tài liệu này:
- _huflit_chuong5_4_truyvancothamso_8825_1985429.pptx