1900-1-1 0:00:00如何不显式

andylauxing 2010-10-13 04:11:22
我在FormView中有一TextBox绑定了后数据"审核日期" (Bind("审核日期")),
但后台有一些时间为1900-1-1 0:00:00,请问如何不显示这样的日期?只显示为空,绑定表达式应如何写?
...全文
898 30 打赏 收藏 转发到动态 举报
写回复
用AI写文章
30 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
[Quote=引用 28 楼 wyq29 的回复:]
引用 26 楼 jenny0810 的回复:
引用 14 楼 yumen3501 的回复:
实体类修改一下即可:



C# code

private DateTime? _date;
public DateTime? DATE
{
set { _date= value; }
get { return _date; }
}

DateTime后加……
虚心请教 加……
[/Quote]

这个叫nullable

不过这是有个坑的,一般生成三层结构的代码不是nullable的,也就是datetime类型的

这样datetime 和 datetime? 类型需要相互转换,而这个代价就比较大,因为 自动生成的代码很容易

因为数据库的改变而改变,这样每次都要修改一遍,代价有些大

通常情况在app_code 文件夹下 PageBase.cs 文件 里面加一个

public string ShowCorrectDateTime(string timeString)
{
if (timeString == string.Empty)
{
return string.Empty;
}
if (Convert.ToDateTime(timeString).ToString("yyyy-MM-dd") == "1900-01-01")
{
return string.Empty;
}
else
{
return Convert.ToDateTime(timeString).ToString("yyyy-MM-dd");
}
}

这个函数 需要显示的时候调用即可
booth.chen 2010-10-13
  • 打赏
  • 举报
回复
数据类型 问题
wyq29 2010-10-13
  • 打赏
  • 举报
回复
[Quote=引用 26 楼 jenny0810 的回复:]
引用 14 楼 yumen3501 的回复:
实体类修改一下即可:



C# code

private DateTime? _date;
public DateTime? DATE
{
set { _date= value; }
get { return _date; }
}

DateTime后加……
虚心请教 加个问号是啥意思??
[/Quote]

加个问号 代表可以是null值
但对于日期类型 asp.net是插入不了null的值 呵呵。。。。
zhongxiangyun 2010-10-13
  • 打赏
  • 举报
回复
设置断点,去调试一下。
jenny0810 2010-10-13
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 yumen3501 的回复:]
实体类修改一下即可:



C# code

private DateTime? _date;
public DateTime? DATE
{
set { _date= value; }
get { return _date; }
}

DateTime后加……
[/Quote] 虚心请教 加个问号是啥意思??
打一壶酱油 2010-10-13
  • 打赏
  • 举报
回复
。。。看来我写的lz都没试过
Netcean 2010-10-13
  • 打赏
  • 举报
回复
<%#Eval("日期字段").ToString().Trim()=="1900-1-1 0:00:00"?"":Eval("日期字段")%>
======================
这个试下
andylauxing 2010-10-13
  • 打赏
  • 举报
回复
[Quote=引用 20 楼 yumen3501 的回复:]
唉,我的代码粘那半天. 不参考也没办法
[/Quote]

yumen3501: 对不起,有点不明,你这几行代码写在哪儿,小弟对实体类不懂呀,初学,请见谅.


卓天 2010-10-13
  • 打赏
  • 举报
回复
数据库里面默认就是1900-1-1 0:00:00,在页面上是不会显示的
酷儿 2010-10-13
  • 打赏
  • 举报
回复
你最出来是时间是空还是?如果为空你可以用三元运算给赋值 亦或用if来判断赋值 如果不为空就不用说什么了 时间要加个{,d/D} 两个d不一样的
Assassin_ 2010-10-13
  • 打赏
  • 举报
回复
唉,我的代码粘那半天. 不参考也没办法
xiesiren 2010-10-13
  • 打赏
  • 举报
回复
要从源头上解决这事,你插入数据库是就要判断插入的是不是空,如果为空就是NULL
andylauxing 2010-10-13
  • 打赏
  • 举报
回复
回楼上,不对呀,FormViewMode智能提示只有三种:insert,edit,readonly
没有你说的label呀?另:我显示数据的控件类型是TextBox呀 。
koukoujiayi 2010-10-13
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 andylauxing 的回复:]
5楼的代码,试了没反应:
protected void FormView1_DataBound(object sender, EventArgs e)
{
// if (FormView1.CurrentMode == FormViewMode.ReadOnly)
// {
TextBox tb = (TextBox)FormView1.FindControl("txt_……
[/Quote]
ReadOnly模式是TextBox??
常规应该是Label哦!!
andylauxing 2010-10-13
  • 打赏
  • 举报
回复
5楼的代码,试了没反应:
protected void FormView1_DataBound(object sender, EventArgs e)
{
// if (FormView1.CurrentMode == FormViewMode.ReadOnly)
// {
TextBox tb = (TextBox)FormView1.FindControl("txt_zfrq");
if (tb.Text == "1900-1-1 0:00:00")
tb.Text = "";
// }

}
wangdj2 2010-10-13
  • 打赏
  • 举报
回复
<%#FormatDate(Eval("审核日期"))%>

后台
public string FormatDate(object e)
{
if (e != null && !e.ToString().Trim().Equals(""))
{
try
{
DateTime dt = DateTime.Parse(e.ToString());
if (dt == DateTime.MinValue)
{
return "";
}
return dt.ToString("yyyy-MM-dd HH:mm:ss");
}
catch (FormatException ex)
{
return "";
}
}
return "";
}
Assassin_ 2010-10-13
  • 打赏
  • 举报
回复
实体类修改一下即可:


private DateTime? _date;
public DateTime? DATE
{
set { _date= value; }
get { return _date; }
}

DateTime后加个问号就行.
andylauxing 2010-10-13
  • 打赏
  • 举报
回复
8楼的报错:
指定的转换无效。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

异常详细信息: System.InvalidCastException: 指定的转换无效。
<td style="width: 333px">
行 122: <asp:TextBox ID="txt_zfrq" runat="server" ReadOnly="True" Text='<%# ((DateTime)Eval("zfrq")).Year==1900?"":Eval("zfrq").ToString() %>'></asp:TextBox></td>
行 123: <%--string.Format((Convert.IsDBNull({0}) ? Convert.ToDateTime("1900-01-01") : Convert.ToDateTime({1})).ToShortDateString()),Eval("zfrq"),Eval("zfrq"))--%>

源错误:
chenyu112 2010-10-13
  • 打赏
  • 举报
回复
8楼的没试?
鱼C缸 2010-10-13
  • 打赏
  • 举报
回复
数据库设计的问题,不要让它默认最小日期
加载更多回复(10)

62,272

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧