0

我有一个表Employee,其中有一列JoiningDate类型为DateTime

我在 asp.net 中获取这个值。

我知道检查我们使用的DBnulldr["JoiningDate"] != DBNull.Value

但是,如果 thisJoiningDate是空的'',那么它的取值就会使它变得像1/1/1900

在 asp.net 中检查DB EMPTY 以获取日期时间列的最佳方法是什么。

细节 :

JoiningDate 是一个 DateTime 字段..我将其设为空字符串而不是 NULL..

在 asp.net 中获取此内容时in dr["JoiningDate"] which is a datarow,它给出了1/1/1900.

代码示例

DataSet dsEmployee = null;
dsEmployee = Data.Select("SELECT * FROM Employee WHERE EmployeeID = '" + _id + "'");

DataRow drEmployee = dsEmployee.Tables[0].Rows[0];

if(drEmployee["JoiningDate"] != string.Empty)
{

}
4

5 回答 5

1

尝试这个-

 if(!String.IsNullOrEmpty(Convert.ToString(dr["JoiningDate"])))
 {

 }
于 2013-07-31T07:25:44.927 回答
0

你可以做这样的事情来检查......

 if(  dr["JoiningDate"] != DBNull.Value && (DateTime)dr["JoiningDate"] != DateTime.Parse("1/1/1900")) {
//do...
}
于 2013-07-31T07:27:41.527 回答
0

你必须像这样编辑你的支票

if(dr["JoiningDate"] != DBNull.Value && !string.IsNullOrEmpty(Convert.ToString(dr["JoiningDate"])))
{
     //Your Code
}
于 2013-07-31T07:29:17.017 回答
0

如果你说不dr["JoiningDate"]回来null

  • 您正在更改SELECT查询中的值
  • 该列的默认值设置为1/1/1900

另外,请检查您插入记录的位置,在这种情况下您将null为该特定列传递,以便它假定正在返回的默认值

所以你应该依靠通过制作一个DateTime实例来检查条件new DateTime(1900,1,1)然后比较

于 2013-07-31T07:41:05.123 回答
0
if(string.IsNullOrEmpty(........))
{

......

}
于 2013-07-31T07:27:05.163 回答