在数据访问层: Basic_User Turn(SqlDataReader mydr)
{
return new Basic_User((string)mydr["userid"], (string)mydr["password"],(DateTime)mydr["birthday"]
}
传入mydr读取数据,如果birthday字段有日期型的值 上面的代码没有任何问题,如果在birthday字段为NULL,就会出现“指定的转换无效”的错误。
我的表设计是birthday字段允许空。
在不改动表结构的情况下如何解决这个转换问题?
{
return new Basic_User((string)mydr["userid"], (string)mydr["password"],(DateTime)mydr["birthday"]
}
传入mydr读取数据,如果birthday字段有日期型的值 上面的代码没有任何问题,如果在birthday字段为NULL,就会出现“指定的转换无效”的错误。
我的表设计是birthday字段允许空。
在不改动表结构的情况下如何解决这个转换问题?
解决方案 »
- sql server experss数据还原和备份
- 关于一个得到用户控件中listbox值的简单问题,都来抢分吧
- 实际Web应用中HttpModule和HttpHandler的典型应用
- 没见过这样的错误! 清高手帮忙!(提供程序无法确定 Object 值)
- asp.net中怎样做到变量累加
- 为何ASP.NET中EXCEL用不了?
- 请教treeview控件的高级应用问题
- 斑竹能翻译http://www.codeproject.com/aspnet/DATier.asp一下吗?急需!!!!
- 求一个简单的写法。(javascript)
- ===正式开始学习vs.net===
- componentArt grid 某一列绑定源是int类型时取不到值,怎么解决?
- datalist和选择性数据显示问题
public class Basic_User
{
public Basic_User()
{}
public Basic_User(string _userid,string _password,DateTime _birthday)
{
this._userid=_userid;
this._password=_password;
this._birthday = _birthday;
} private string _userid;
private string _password;
private DateTime _birthday;
public string UserId
{
set{ _userid=value;}
get{return _userid;}
}
public string PassWord
{
set{ _password=value;}
get{return _password;}
}
public DateTime Birthday
{
set{ _birthday=value;}
get{return _birthday;}
}
//读取的时候要先判断的:string userID="";
if (!Convert.IsDBNull(mydr["userid"]))
userID=mydr["userid"].ToString();
再写其它的条件就可以了。
.net2.0
DateTime? _birthday.net 1.1set
{
((_birthday==DBNull.Value)||(_birthday==null))?DateTime.MinValue:_birthday
}
public class Basic_User
{
public Basic_User()
{}
public Basic_User(string _userid,string _password,DateTime? _birthday)
{
....
this._birthday = _birthday;
}
......
private DateTime? _birthday;
public DateTime? Birthday
{
set{ _birthday=value;}
get{return _birthday;}
} Basic_User Turn(SqlDataReader mydr)
{
return new Basic_User((string)mydr["userid"], (string)mydr["password"],(DateTime?)mydr["birthday"]
}
大体上找到两个方法
1、在.net2.0可以用 DateTime? _birthday声明DateTime类型。 (不知道为什么我声明成DateTime?类型还是不管用仍然出现:指定的转换无效”的错误)
2、用一个取不到的值(System.DateTime.MaxValue或System.DateTime.MinValue)代替NULL。
不知道大家还有没有什么好的方法???
{
return new Basic_User((string)mydr["userid"], (string)mydr["password"],string.IsNullOrEmpty(mydr["birthday"].ToString())?"":Convert.ToDateTime(mydr["birthday"].ToString())
}code]
{
return new Basic_User((string)mydr["userid"], (string)mydr["password"],
mydr["birthday"].tostring()==""?null:(DateTime)mydr["birthday"]
}