2012-03-21 24 views
11
 DbParameter param = comm.CreateParameter(); 
     param = comm.CreateParameter(); 
     param.ParameterName = "@StaffId"; 
     if (!string.IsNullOrEmpty(activity.StaffId)) 
      param.Value = activity.StaffId; 
     param.DbType = DbType.String; 
     comm.Parameters.Add(param); 

Ở trên không hoạt động (rõ ràng), đối tượng không khởi tạo. Tôi đang cố gắng để chèn một NULL vào cơ sở dữ liệu khi StaffId là không dân cư. Làm thế nào tôi có thể đạt được điều này?Chèn NULL vào SQL DB từ C# DbCommand

+1

bạn có thể sử dụng DBNull.Value –

+0

Perfect! Nếu bạn đăng câu trả lời này, tôi sẽ đánh dấu là đúng. – SkonJeet

+0

Xong bây giờ :) Cảm ơn –

Trả lời

23

Bạn có thể sử dụng DBNull.Value khi bạn cần phải vượt qua NULL như một tham số cho thủ tục lưu trữ.

param.Value = DBNull.Value; 

Hoặc bạn có thể sử dụng thay vì điều hành if của bạn:

param.Value = !string.IsNullOrEmpty(activity.StaffId) ? activity.StaffId : (object)DBNull.Value; 
+1

Cảm ơn các chỉnh sửa Andrey - đánh giá cao nó. Nó có vẻ điên rồ để phải đúc này như là một đối tượng mặc dù (với tôi anyway). – SkonJeet

7

Hãy thử DBNull.Value

if (!string.IsNullOrEmpty(activity.StaffId)) 
    param.Value = activity.StaffId; 
else 
    param.Value=DBNull.Value; 
+0

có cách nào để sử dụng không? nhà điều hành cho một loại viết tắt nếu khác tuyên bố ở đây ?? Có vẻ như không giống như việc chuyển đổi String/DBNull.Value !? – SkonJeet

+1

Hãy thử điều này: param.Value =! String.IsNullOrEmpty (activity.StaffId)? activity.StaffId: (đối tượng) DBNull.Value; –

3

Bạn có thể sử dụng DBNull.Value:

param.Value = DBNull.Value; 
Các vấn đề liên quan