[英]I cannot get Null values from DataBase in C#.NET
try
{ var sql = "SELECT ti_id_10888, ti_summary_10888, ti_description_10888, ti_estimation_10888, ti_priority_10888, ti_status_10888, ti_sprint_id_10888 FROM ti_ticket";
var command = new SqlCeCommand(sql, connection);
connection.Open();
var reader = command.ExecuteReader();
while (reader.Read())
{
var t = GetFromReader(reader);
result.Add(t);
}
}
return result;
}
private Ticket GetFromReader(SqlCeDataReader reader)
{
var t = new Ticket
{
Id = Convert.ToInt32(reader.GetValue(0)),
Summary = reader.GetValue(1).ToString(),
Description = reader.GetValue(2).ToString(),
Estimation = Convert.ToInt32(reader.GetValue(3)),
Priority = reader.GetValue(4).ToString(),
Status = reader.GetValue(5).ToString(),
Sprint = new SprintManager().GetById(Convert.ToInt32(reader.GetValue(6)))
};
return t;
}
我的數據中有空值,請幫忙? 我必須獲取所有為空或非空值的行
錯誤是“對象不能將 DBNULL 轉換為其他類型”
如果你不介意添加它,你存儲什么類型的數據,另外請添加Ticket對象結構,哪些數據應該為空。 如果它是int,double ...確保將其設置為“int?” 使其成為可空值。 這里是對可為空值類型的引用: https : //docs.microsoft.com/en-us/dotnet/csharp/language-reference/builtin-types/nullable-value-types
我發現可能適合的另一個類似答案是: https : //www.codeproject.com/Questions/686283/Object-cannot-be-cast-from-DBNull-to-other-types-e
編輯:
如果您的 sprint_id 為 null,則“Convert.ToInt32(reader.GetValue(6))”將是“Convert.ToInt32(null)”,這會導致錯誤,因此在嘗試轉換之前請確保它返回實際數字。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.