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
相关产品推荐
相关产品推荐

