siebo
04-01-2011, 19:50
Mình có đoạn procedure update table Ban như thế này:
CREATE PROCEDURE updateBAN
(@MaBan ntext,
@MaKhuVuc ntext,
@SoThuTu int,
@SoLuongGhe int,
@TinhTrang ntext,
@MaBG ntext,
@SoLuotKhach int,
@GhiChu ntext
)
AS
UPDATE BAN SET MaKhuVuc = @MaKhuVuc, SoThuTuBan = @SoThuTu, SoLuongGhe = @SoLuongGhe, TinhTrang = @TinhTrang, MaBG = @MaBG, SoLuotKhach = @SoLuotKhach, GhiChu = @GhiChu
where MaBan like @MaBan
Nhìn thì rối nhưng mình chỉ muốn hỏi khi gọi procedure trên bằng C#:
SqlCommand sqlcmd = new SqlCommand("updateBAN", ketnoi.Connection);
sqlcmd.CommandType = CommandType.StoredProcedure;
sqlcmd.Parameters.Add("@MaBan", SqlDbType.NVarChar).Value = this.strMaBan;
sqlcmd.Parameters.Add("@MaKhuVuc", SqlDbType.NVarChar).Value = this.strMaKhuVuc;
sqlcmd.Parameters.Add("@SoThuTu", SqlDbType.Int).Value = this.iSoThuTu;
sqlcmd.Parameters.Add("@SoLuongGhe", SqlDbType.Int).Value = this.iSoLuongGhe;
sqlcmd.Parameters.Add("@TinhTrang", SqlDbType.NVarChar).Value = this.strTinhTrang;
sqlcmd.Parameters.Add("@MaBG", SqlDbType.NVarChar).Value = this.strMaBG;
sqlcmd.Parameters.Add("@SoLuotKhach", SqlDbType.Int).Value = this.iSoLuotKhach;
sqlcmd.Parameters.Add("@GhiChu", SqlDbType.NVarChar).Value = this.strGhiChuBan;
sqlcmd.ExecuteNonQuery();
Thuộc tính MaBG là khóa ngoại trỏ tới MaBG là khóa chính của bảng BanGhep, mình muốn update giá trị null cho nó (bởi vì nó là khóa ngoại nên không nhập bậy đc):
Ban.strMaBG = null;
Ban.updateBAN();
Nhưng C# lại báo lỗi @MaBG chưa đc supplied và không thực thi, còn trong sql query mình vẫn cho nó giá trị null bình thường. Ai biết hướng dẫn mình với, cảm ơn nhiều nhiều!
CREATE PROCEDURE updateBAN
(@MaBan ntext,
@MaKhuVuc ntext,
@SoThuTu int,
@SoLuongGhe int,
@TinhTrang ntext,
@MaBG ntext,
@SoLuotKhach int,
@GhiChu ntext
)
AS
UPDATE BAN SET MaKhuVuc = @MaKhuVuc, SoThuTuBan = @SoThuTu, SoLuongGhe = @SoLuongGhe, TinhTrang = @TinhTrang, MaBG = @MaBG, SoLuotKhach = @SoLuotKhach, GhiChu = @GhiChu
where MaBan like @MaBan
Nhìn thì rối nhưng mình chỉ muốn hỏi khi gọi procedure trên bằng C#:
SqlCommand sqlcmd = new SqlCommand("updateBAN", ketnoi.Connection);
sqlcmd.CommandType = CommandType.StoredProcedure;
sqlcmd.Parameters.Add("@MaBan", SqlDbType.NVarChar).Value = this.strMaBan;
sqlcmd.Parameters.Add("@MaKhuVuc", SqlDbType.NVarChar).Value = this.strMaKhuVuc;
sqlcmd.Parameters.Add("@SoThuTu", SqlDbType.Int).Value = this.iSoThuTu;
sqlcmd.Parameters.Add("@SoLuongGhe", SqlDbType.Int).Value = this.iSoLuongGhe;
sqlcmd.Parameters.Add("@TinhTrang", SqlDbType.NVarChar).Value = this.strTinhTrang;
sqlcmd.Parameters.Add("@MaBG", SqlDbType.NVarChar).Value = this.strMaBG;
sqlcmd.Parameters.Add("@SoLuotKhach", SqlDbType.Int).Value = this.iSoLuotKhach;
sqlcmd.Parameters.Add("@GhiChu", SqlDbType.NVarChar).Value = this.strGhiChuBan;
sqlcmd.ExecuteNonQuery();
Thuộc tính MaBG là khóa ngoại trỏ tới MaBG là khóa chính của bảng BanGhep, mình muốn update giá trị null cho nó (bởi vì nó là khóa ngoại nên không nhập bậy đc):
Ban.strMaBG = null;
Ban.updateBAN();
Nhưng C# lại báo lỗi @MaBG chưa đc supplied và không thực thi, còn trong sql query mình vẫn cho nó giá trị null bình thường. Ai biết hướng dẫn mình với, cảm ơn nhiều nhiều!