Tôi đang phân tích cú pháp XML (LINQ thành XML) và tôi đang sử dụng một kiểu rỗng (int?
và decimal?
) trong trường hợp phần tử/thuộc tính trống. Tuy nhiên, khi xây dựng bộ sưu tập của tôi để vượt qua DB (Sử dụng TVP), tôi không biết cách xử lý các trường hợp giá trị thực sự là rỗng. Tôi không thể vượt qua một null vào SqlDataRecord SetInt32 hoặc SetDecimal và tôi không muốn thiết lập để không .... Tôi thực sự muốn nó được null.Làm thế nào để bạn xử lý kiểu Nullable với SqlDataRecord
Cho tôi biết không bị quá tải cho int
?
Đếm dưới đây là một loại nullable (int?
Đếm)
SqlDataRecord rec = new SqlDataRecord(
new SqlMetaData("Name", SqlDbType.VarChar, 50),
new SqlMetaData("Type", SqlDbType.VarChar, 50),
new SqlMetaData("Count", SqlDbType.Int));
rec.SetString(0, dm.Name);
rec.SetString(1, dm.Type);
rec.SetString(2, dm.Count);
Bất kỳ ý tưởng làm thế nào để xử lý việc này mà không đi không (duy trì null)?
+1, rất đẹp .. –
SetValue (thứ tự, đối tượng) xử lý các giá trị null và null với một chút chi phí cho loại và kiểm tra độ dài giá trị. Sự khác biệt hiệu suất có thể không đáng chú ý. –
@RichardCollette Cảm ơn bạn đã bình luận; Tôi không nghĩ về điều đó. Tôi nghi ngờ bạn đúng rằng sự khác biệt hiệu suất có lẽ là không đáng kể đối với hầu hết các ứng dụng. Mặc dù vậy, tôi có khuynh hướng thích gõ mạnh hơn vào nền tảng triết học. Nhận xét của bạn cũng truyền cảm hứng cho tôi để thêm một tối ưu hóa nhỏ mà tôi không nghĩ đến hai năm trước. – phoog