【问题标题】:How to add bool type to table?如何将布尔类型添加到表中?
【发布时间】:2019-06-13 05:38:58
【问题描述】:

我正在我的模型中编写用于将值保存到数据库的方法,并且遇到了 bool 类型 “无法将类型 bool 隐式转换为字符串” 的问题。 将字符串和布尔值保存到我的数据库表中的正确方法应该如何看待?

表格模型:

  public class Table
  {
    public int Id{ get; set; }
    public bool Yes { get; set; }
    public string Name { get; set; }
  }

保存方法:

public void SaveToDb()
{
 var db2 = new DatabaseEntities();
 db2.Table.Add(new Table(){ Name=Name, Yes=Yes} //get error here with "Yes"
 db2.SaveChanges();
}

SQL 表:

CREATE TABLE [dbo].[Table] (
[Id]       INT             IDENTITY (1, 1) NOT NULL,
[Name]     NVARCHAR (50)   NULL
[Yes]      BIT             NOT NULL,
PRIMARY KEY CLUSTERED ([Id] ASC)
);

【问题讨论】:

  • Table.Yesbool 吗?该消息说您正在尝试将bool 分配给string,所以我猜Table.Yes 这里是string而不是bool
  • 应该是Yes = true
  • 我没有 c# 表类,我从我的 FormView 获取值,传递给我的控制器并使用此模型方法保存到数据库
  • 当您使用new Table(){ Name="name", Yes=true}(即使用显式值)时会发生什么?另外:什么时候出现错误,编译时还是运行时?
  • 您正在使用new Table(),因此代码中的一个类(可能是自动生成的)。将光标设置在该“表”上,然后按 F12 转到定义。那里的 Yes 属性是什么类型的?

标签: c# .net asp.net-mvc entity-framework asp.net-core


【解决方案1】:

像这样编辑方法。

public void SaveToDb()
{
 bool yes =true; //You can add true or false according to your needs
 var db2 = new DatabaseEntities();
 db2.Table.Add(new Table(){ Name=Name, Yes=yes } 
 db2.SaveChanges();
}

【讨论】:

  • 实际上没有办法可以工作 - 因为 OP 说 db2.Table.Add(new Table(){ Name=Name, Yes=true }); 不起作用。
【解决方案2】:

另外,在 sql create table 中 name 和 yes 列之间似乎没有逗号。我假设该表已经到位,因此这可能并不重要。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-03-12
    • 1970-01-01
    • 1970-01-01
    • 2011-04-25
    • 2010-11-26
    • 1970-01-01
    • 2012-06-02
    • 1970-01-01
    相关资源
    最近更新 更多