【问题标题】:convert string to bool while fetching data from database从数据库中获取数据时将字符串转换为布尔值
【发布时间】:2015-07-29 01:57:30
【问题描述】:
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; }
}

显示错误

“字符串未被识别为有效的布尔值”

如何解决?

【问题讨论】:

  • Convert.ToBoolean() 的唯一有效值是 "True""False"(请参阅 documentation)。不清楚你在这里做什么——你甚至没有从读者那里读到价值。

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


【解决方案1】:

我得到了答案。

我正在从读者那里读取值,这些 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;
    }

【讨论】:

  • 您可能想在这里考虑一下您的结构。我假设 reader 是一个成员实例,因为它必须在 GetInteger 和 GetString 方法中使用。有了这种模式,它就永远不会被处理掉。
猜你喜欢
  • 2021-10-22
  • 2019-06-29
  • 1970-01-01
  • 1970-01-01
  • 2020-12-11
  • 1970-01-01
  • 2018-09-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多