问题描述
标红句报错:将一个字符串转换成DateTime时,先分析该字符串以获取日期,然后再将每个变量放置到DateTime对象中求大神帮忙看看,小女拜谢!privateDataTableexe_Table(){DataSetds=newDataSet();BLL.D_MenumenuBll=newBLL.D_Menu();stringMenuIDs="";#region根据权限设定的菜单ID集合查询到菜单的集合ds=null;//1.得到UserIDstringUserID=Session["UserID"].ToString();//2.得到该人员的RoleIDBLL.D_UseruseBLL=newBLL.D_User();Model.UseruserModel=newModel.User();userModel=useBLL.GetModel(Int32.Parse(UserID));intRoleID=userModel.RoleID;//3.得到MenuID合集BLL.R_Role_MenurrmBll=newBLL.R_Role_Menu();ds=rrmBll.GetRoleInnerMenuList(RoleID.ToString());for(inti=0;i<ds.Tables[0].Rows.Count;i++){MenuIDs=MenuIDs+","+ds.Tables[0].Rows[i]["MenuID"].ToString();}if(ds.Tables[0].Rows.Count!=0){MenuIDs=MenuIDs.Remove(0,1);ds=menuBll.GetList("MenuIDin("+MenuIDs+")");}#endregionreturnGetTable(ds.Tables[0]);}
publicModel.UserGetModel(intdn_UserId){returndal.GetModel(dn_UserId);}
publicModel.UserGetModel(intdn_UserId){StringBuilderstrSql=newStringBuilder();strSql.Append("selecttop1dn_UserId,dc_UserName,dc_UserPwd,RoleID,dn_isShow,dt_addTimefromD_User");strSql.Append("wheredn_UserId=@dn_UserId");SqlParameter[]parameters={newSqlParameter("@dn_UserId",SqlDbType.Int,4)};parameters[0].Value=dn_UserId;Model.Usermodel=newModel.User();DataSetds=DbHelperSQL.Query(strSql.ToString(),parameters);if(ds.Tables[0].Rows.Count>0){if(ds.Tables[0].Rows[0]["dn_UserId"]!=null&&ds.Tables[0].Rows[0]["dn_UserId"].ToString()!=""){model.dn_UserId=int.Parse(ds.Tables[0].Rows[0]["dn_UserId"].ToString());}if(ds.Tables[0].Rows[0]["dc_UserName"]!=null&&ds.Tables[0].Rows[0]["dc_UserName"].ToString()!=""){model.dc_UserName=ds.Tables[0].Rows[0]["dc_UserName"].ToString();}if(ds.Tables[0].Rows[0]["dc_UserPwd"]!=null&&ds.Tables[0].Rows[0]["dc_UserPwd"].ToString()!=""){model.dc_UserPwd=ds.Tables[0].Rows[0]["dc_UserPwd"].ToString();}if(ds.Tables[0].Rows[0]["RoleID"]!=null&&ds.Tables[0].Rows[0]["RoleID"].ToString()!=""){model.RoleID=int.Parse(ds.Tables[0].Rows[0]["RoleID"].ToString());}if(ds.Tables[0].Rows[0]["dn_isShow"]!=null&&ds.Tables[0].Rows[0]["dn_isShow"].ToString()!=""){model.dn_isShow=int.Parse(ds.Tables[0].Rows[0]["dn_isShow"].ToString());}if(ds.Tables[0].Rows[0]["dt_addTime"]!=null&&ds.Tables[0].Rows[0]["dt_addTime"].ToString()!=""){model.dt_addTime=DateTime.Parse(ds.Tables[0].Rows[0]["dt_addTime"].ToString());}returnmodel;}else{returnnull;}}
解决方案
解决方案二:
断点跟,看UserID到底是什么,如果是空字符串,或者里面有字母,那必然是转不成数字的
解决方案三:
未见标红行,这句?model.dt_addTime=DateTime.Parse(ds.Tables[0].Rows[0]["dt_addTime"].ToString()); 把数据打出来看看,可能日期格式错误
解决方案四:
而且你执行stringUserID=Session["UserID"].ToString();之前,不判断Session["UserID"]是否为null?要是session丢失了怎么办
解决方案五:
F5调试,可能是转换的时候为空,要先确保数据的完整性。
解决方案六:
先设置断点,看看那个字符串到底是什么,发出来,这样大家才能知道为什么会出错啊。