Tôi tin rằng, ô nuôi cấy dữ liệu không thể là lý do cho vấn đề của bạn. Có lẽ cột không tồn tại, hoặc bất kỳ lỗi nào khác xảy ra, hoặc bản thân DataRow là null và bạn nên xử lý điều đó. Nhìn vào ngoại lệ - "dường như thổi lên" không phải là một mô tả hợp lệ về vấn đề của bạn.
Sau đây giải thích rằng, nhưng cũng sẽ trả lời câu hỏi từ tiêu đề cho mọi người khác.
Nếu giá trị cột là null, một đối tượng System.DBNull
được trả lại, và .ToString()
trả về một chuỗi rỗng, trong khi (string)
hoặc as string
trở null
.
Vì vậy, không có ý nghĩa gì khi kiểm tra mục được trả lại cho ==null
vì không bao giờ đánh giá được true
.
- Nếu bạn chấp nhận chuỗi rỗng, mã của bạn đã tối ưu, không cần xử lý trường hợp
DBNull
.
- Nếu bạn muốn nhận
null
, hãy thay đổi .ToString()
thành as string
.
- Nếu bạn muốn xử lý theo bất kỳ cách nào khác, hãy sử dụng
if (dr.IsNull("FirstName"))
hoặc thực hiện ==null
trên biến mục tiêu sau as string
.
Nguồn
2014-09-12 08:18:15
Chuỗi là "nullable" theo mặc định, vì chúng là các loại tham chiếu. –
Tôi đã nói về cột và không phải là loại chuỗi. –