[英]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.