create table tasktodo(Id int identity(1,1) not null, Done bit,Texts nvarchar(max),Dates date)
那是我的数据库表。
我编写代码来从数据库中获取数据
public List<TaskToDoList> GetTaskToDo()
{
var Obj = DBHelper.GetDBObject();
reader = Obj.ExecuteReader(CommandType.StoredProcedure, "GetTaskToDoList");
var tasktodo = new List<TaskToDoList>();
while(reader.Read())
{
tasktodo.Add(new TaskToDoList
{
Id =GetInteger("Id"),
Done=Convert.ToBoolean("Done"),
Text=GetString("Text"),
Date =reader["Date"] ==DBNull.Value ? DateTime.MinValue : Convert.ToDateTime(reader["Date"])
});
}
return tasktodo;
}
我的模特
public class TaskToDoList
{
public int Id { get; set; }
public bool Done { get; set; }
public string Text { get; set; }
[DataType(DataType.Date)]
public DateTime Date { get; set; }
}
显示错误
&#34;字符串未被识别为有效的布尔值&#34;
如何解决这个问题?
答案 0 :(得分:0)
我得到了答案。
我正在读取读者的值,GetString和GetIngers是检查任何空值的函数。这些参数是数据库表中的值
public List<TaskToDoList> GetTaskToDo()
{
var Obj = DBHelper.GetDBObject();
reader = Obj.ExecuteReader(CommandType.StoredProcedure, "GetTaskToDoList");
var tasktodo = new List<TaskToDoList>();
while(reader.Read())
{
tasktodo.Add(
new TaskToDoList
{
Id =GetInteger("Id"),
Done=Convert.ToBoolean( reader["Done"]),
Text=GetString("Texts"),
Date =reader["Dates"] ==DBNull.Value ? DateTime.MinValue : Convert.ToDateTime(reader["Dates"])
});
}
return tasktodo;
}