C#调用数据库时的DBNull问题
Mdb数据库Users表结构:
ID 自动编号
Name 姓名,字符串,不可为空
Age 年龄,数字,可为空
现在要写一个“获取年龄为xx的用户”的函数,在DataSet中写入如下查询:
SELECT * FROM Users WHERE Age=?
自动生成了函数:
GetDataByAge(int? Age);
获取年龄为10的用户,就用:
xx = GetDataByAge(10);
获取年龄未知的用户,就用:
xx = GetDataByAge(null); // 这里出错,无法找到任何记录
但是现在问题来了,"WHERE Age=NULL"无法匹配任何记录,因为正规的写法是"WHERE Age IS NULL"
当然,我可以将年龄未知用"-1"表示。但是,现在数据库设计不能修改,年龄未知必须用null表示。
那我该怎么做才能实现“获取年龄未知的用户”呢?
谢谢!