null、DBNull,以及 Empty 的关系
今天在做项目的时候遇到了这个问题,现在总结一下。
看这段代码:
string strSql = "Select Name From UserInfos Where ID = 8"
object obj = SqlType.ExecuteScalar(strSql);
object obj = SqlType.ExecuteScalar(strSql);
共有4种情况可能发生,分别来看一下。
1、不存在 ID = 8 的记录。此时,obj == null。
2、表中有 ID = 8 的记录,但是,该字段在库中以[NULL]形式表示。此时,obj == DBNull.Value。
3、表中有 ID = 8 的记录,但是,该字段在库中以[]形式表示。此时,obj == String.Empty。
4、表中有 ID = 8 的记录,而且还是一个实实在在的值,像这样[Jeky]。此时,可以通过这种方法来获取该值:
string name = "" + obj;
Response.Write (name); // 输入值:Jeky
2、表中有 ID = 8 的记录,但是,该字段在库中以[NULL]形式表示。此时,obj == DBNull.Value。
3、表中有 ID = 8 的记录,但是,该字段在库中以[]形式表示。此时,obj == String.Empty。
4、表中有 ID = 8 的记录,而且还是一个实实在在的值,像这样[Jeky]。此时,可以通过这种方法来获取该值:
string name = "" + obj;
Response.Write (name); // 输入值:Jeky