从数据库中获取数据时将字符串转换为bool

时间:2015-07-29 01:57:30

标签: sql-server asp.net-mvc c#-4.0

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;

如何解决这个问题?

1 个答案:

答案 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;
    }