C# 如何在asp.net的gridview中将空日期字段显示为空白
检索和显示空日期字段时,它显示为1/1/1900 12:00:00 AM。 aspx代码C# 如何在asp.net的gridview中将空日期字段显示为空白,c#,asp.net,sql-server,C#,Asp.net,Sql Server,检索和显示空日期字段时,它显示为1/1/1900 12:00:00 AM。 aspx代码 <asp:TemplateField HeaderText="Task Completed dt"> <ItemTemplate> <%#Eval("TaskCompletedDt")%> </ItemTemplate>
<asp:TemplateField HeaderText="Task Completed dt">
<ItemTemplate>
<%#Eval("TaskCompletedDt")%>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="txtTaskCompletedDt" runat="server" Text='<%# Eval("TaskCompletedDt") %>'>
</asp:TextBox>
</EditItemTemplate>
</asp:TemplateField>
![enter image description here][1]
您是否尝试过使用eval并与默认的空时间进行比较
text='<%#IIF(Eval("TaskCompletedDt") = '1900-01-01 00:00:00.000', "", DateField) %>'
text=''
类似这样的内容应该可以满足您的需要,第一部分就是您要计算的值,如果第一条语句为true,您希望将其设置为“”,如果Eval(“TaskCompletedDt”)不等于该日期,您希望该值为您的实际日期。如果您认为这是在数据库中插入
NULL
值,那么你错了:
TaskCompletedDt =
CASE WHEN TaskCompletedDt = '1900-01-01 00:00:00.000' THEN ''
ELSE CONVERT(VARCHAR(10), TaskCompletedDt, 103)
END
您正在向SQL Server传递一个空字符串,而SQL Server又默认为默认值1900-01-01 00:00:00.000
如果确实要存储NULL
或检索NULL值,请传入NULL
TaskCompletedDt =
CASE WHEN TaskCompletedDt = '1900-01-01 00:00:00.000' THEN NULL
ELSE CONVERT(VARCHAR(10), TaskCompletedDt, 103)
END
将查询写入codebehind中以显示网格。它确实有效
string query = "SELECT distinct val1,val2,(case when year(convert(date,DATE,103)) <= 1900 then null else DATE end) as Date FROM tablename";```
string query=“SELECT distinct val1,val2,(case when year(convert(date,date,103))只需将string.IsNullOrEmpty()方法与三元(?)运算符一起使用,您能详细说明plz@sainprecept这一点吗?”
string query = "SELECT distinct val1,val2,(case when year(convert(date,DATE,103)) <= 1900 then null else DATE end) as Date FROM tablename";```