You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C#方法参数如何定义Bit类型?SQL Bit对应参数报错问题

问题原因与解决方案

你遇到的问题很明确:C#中并没有名为bit的内置数据类型,你把SQL Server的Bit数据类型直接搬到了C#方法参数里,这才导致编译器无法识别,进而出现类型转换相关的错误。

核心知识点:SQL与C#的数据类型映射

SQL Server的Bit类型在C#里对应的是bool(布尔类型):

  • 如果数据库里的Firm列不允许为NULL,直接用bool
  • 如果该列允许存储NULL值,就用bool?(也就是Nullable<bool>,可空布尔类型)

修正后的代码示例

public void Edit_NAA_ApplicationsFirm(int ApplicationId, string UniversityOffer, bool Firm) {
    // 根据关联ID获取NAA_Applications表的实体
    NAA_Applications AppFirm = Get_Applicant_Application(ApplicationId);
    // 将编辑后的值赋值给实体字段
    AppFirm.Firm = Firm;
    // 保存变更到数据库
    _context.SaveChanges();
}

额外注意事项

如果你使用的是Entity Framework(从代码里的_context和实体类NAA_Applications来看应该是),确保你的实体类NAA_Applications中的Firm属性也是bool(或bool?)类型:

public class NAA_Applications
{
    // 其他属性...
    public bool Firm { get; set; }
    // 如果允许NULL则写成:public bool? Firm { get; set; }
}

这样EF会自动处理C# bool和SQL Bit之间的映射,完全不需要手动调用BitConverter来转换。

内容的提问来源于stack exchange,提问作者Henry Green

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 04:27:07