问题
用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; }
有空再补充详细点,转载请注明,谢谢.
本文介绍了在C#和SqlServer数据库开发中,处理外键列为long类型且可能为空的情况,提供了两种解决方法:将外键列设置为字符串类型或使用可空整数类型。并通过示例代码演示了如何在C#中处理这些情况。

868

被折叠的 条评论
为什么被折叠?



