3.8.1. Chức năng
Sửdụng đối tượng SqlParameter đểtruyền giá trị (lấy từtextbox, có sẵn…) vào cho các tham số ứng với câu lệnh SQL hay
thửthục nội tại (StoredProcedure).
Chú ý: Chỉ sửdụng đối tượng này nếu câu lệnh SQL hay StoredProcedure có tham số. 3.8.2. Sửdụng
Giảsửchúng ta có một StoredProcedure thêm mới một bản ghi vào bảng tbSinhVien có nội dung:
CREATE PROCEDURE ThemMoiBanGhi (
@MaSinhVien nchar(10), @TenSinhVien nvarchar(50), @Lop nchar(10),
@NgaySinh nchar(12), @QueQuan nvarchar(12) )
AS BEGIN
If exists (select MaSinhVien from tbSinhVien where MaSinhVien=@MaSinhVien) print 'Da co sinh vien nay'
else
begin
Insert into tbSinhVien values (@MaSinhVien, @TenSinhVien,@Lop,@NgaySinh,@QueQuan) print 'Da them thanh cong'
end END
GO
Chúng ta sửdụng đối tượng SqlParameternhư dưới:
usingSystem.Data;
usingSystem.Data.SqlClient;
namespaceSampleDatabaseProgramming {
public partial classfrmADONET:Form
{
publicfrmADONET() {
InitializeComponent(); }
//Khai báo các chuỗi kết nối và các đối tượng
SqlConnectionsqlCon;
SqlCommandsqlCom;
SqlParametersqlPa;
//Phương thức kết nối tới CSDL SQL Server private voidKetNoi()
{
sqlCon =newSqlConnection(strConnect);
if(sqlCon.State ==ConnectionState.Closed) {
sqlCon.Open(); }
}
//Phương thức đóng kết nối tới CSDL private voidNgatKetNoi()
{
if(sqlCon.State ==ConnectionState.Open) {
sqlCon.Close(); }
}
//Phương thức ThucThiởdạng tổng quát: cảcâu lệnh SQL và Stored Procedure //Thực thi nhiều lần và các Store hay câu lệnh SQL có tham số
//Khai báo đối tượng Parameter /// <summary>
///Phương thức thực thi câu lệnh SQL hay StoredProcedure /// </summary>
/// <param name="cmdType">Thực thi dạng câu lệnh SQL hay StoredProcedure</param> /// <param name="strName">Tên câu lệnh SQL hay tên StoredProcedure</param> /// <param name="MangTen">Tên các tham sốtruyền vào StoredProcedure</param>
/// <param name="MangGiaTri">Giá trịtruyền vào cho các biến trong StoredProcedure</param> /// <param name="MangType">Kiểu dữliệu của biến</param>
public voidThucThi(CommandTypecmdType,stringstrName,string[] MangTen,object[] MangGiaTri,DbType[] MangType) {
KetNoi();
//
sqlCom =newSqlCommand(); sqlCom.CommandType = cmdType; sqlCom.CommandText = strName; sqlCom.Connection = sqlCon;
//Khai báo và gán các đối tượng Parameter for(inti = 0; i < MangTen.Length; i++) {
sqlPa =newSqlParameter();
sqlPa.ParameterName = MangTen[i]; sqlPa.Value = MangGiaTri[i]; sqlPa.DbType = MangType[i]; sqlCom.Parameters.Add(sqlPa); } //Thực thi câu lệnh sqlCom.ExecuteNonQuery(); NgatKetNoi(); } //Gọi thực thi Stored
private voidfrmADONET_Load(objectsender,EventArgse) {
string[] MangTen = {"MaSinhVien","TenSinhVien","Lop","NgaySinh","QueQuan"};
string[] MangGT = {"M01","Nguyễn Văn A","TK6","10/10/1988","Hưng Yên"};
DbType[] MangType={DbType.String,DbType.String,DbType.String,DbType.String,DbType.String};
//ThucThi(CommandType.StoredProcedure, "ThemMoiBanGhi", MangTen, MangGT, MangType);
//End
}
}