:hug:1. 数据库中NULL和“”不一样,NULL和0也不一样
2. 数据库中NULL表示不知道
3. 数据库中使用SQL语句插入空数据,字段显示null,使用ADO.NET插入一条空数据,字段显示空白(就是什么都没有,INT字段为0)
4. NULL不能通过大于、小于或者’’查询出来,NULL只能通过 select * from table where 列明 is null 查询null字段。
5. ADO.NET无法直接向数据库插入一条NULL字段,同样也无法读取数据库传入进来的NULL字段
6. 传NULL需要在DAL层的SQLHELPER文件中,写FromDbValue和ToDbValue来转化数据库中的空值DBNull.Value和C#中的空值NULL
//导出数据库NULL处理
public static object FromDbValue(object value)
{
if (value == DBNull.Value)// DBNull.Value为object,表示数据库中NULL
{
return null;
}
else
{
return value;
}
}
//导入数据库NULL处理
public static object ToDbValue(object value)
{
if (value == null)
{
return DBNull.Value;
}
else
{
return value;
}
}
7.在数据库中,所以标记允许为空值的字段,在ADO.NET使用时,都需要转化,包括string,不可空字段Int,datetime加?变可空字段后的定义等。
欢迎大家批评指正,共同进步 |
|