C#遇到数字类型的可空外键

    问题

    用C#和SqlServer进行数据库开发时,遇到一个问题,在数据库中,外键列是long类型,并且有可能为空,这时候如果值是null,C#用long在取数据库的外键时候,就会报错.

   

    解决办法.

    1.varchar或nvarchar

    将可以为空的外键列设置成字符串类型varchar或nvarchar. 这种方法优点是简单通用,缺点是在C#中取值的时候需要多一次判断,该值是否为数字.

    2.int?或long?

    据库类型为int或long,并且可空,在C#中使用int?或long?类型来取这个字段,int?的意思是在int的基础上,可以将null值赋给int变量,long?同理,在存long值的同时,可以将null值存进long类型的变量中.

 

    样例

    int? rowid = reader["rowid"];

    if (rowid != null) { Object o = new ObjectManager().getObjectByID(rowid); }

    else { Object o = null; }

 

    有空再补充详细点,转载请注明,谢谢.

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值