如何在asp.net中默认今天的日期

时间:2015-02-17 15:55:19

标签: c# asp.net gridview

我在gridview中有一个标签,并希望将DT的值默认为今天的日期。我想在gridview 2015-02-17中这样展示。这是gridview中标签的aspx

<asp:TemplateField ItemStyle-Width="150px" HeaderText="Date">
       <ItemTemplate>
   <asp:Label ID="Label1" runat="server" Text='<%# Eval("DT")%>'></asp:Label>
   </ItemTemplate>
     </asp:TemplateField>

绑定gridview的代码

private void Bind_GV_Test()
        {
            DataTable dt = new DataTable();
            using (SqlConnection con = new SqlConnection(strConnString))
            {
                string strQuery = "select ID, Name, Location,  DT from myTable ";
                SqlCommand cmd = new SqlCommand(strQuery);
                using (SqlDataAdapter sda = new SqlDataAdapter())
                {
                    cmd.Connection = con;
                    con.Open();
                    sda.SelectCommand = cmd;
                    sda.Fill(dt);
                    gv_Test.DataSource = dt;
                    gv_Test.DataBind();
                    con.Close();
                    con.Dispose();

                }
            }
        }

5 个答案:

答案 0 :(得分:5)

为什么要去DB服务器找出今天的日期?

<div ID="Label1"><%=DateTime.Now.Date%></div>

答案 1 :(得分:4)

如果是ISNULL,您可以使用COALESCENULL来使用GETDATE

string strQuery = @"SELECT ID, 
                           Name, 
                           Location,  
                           DT = ISNULL(DT, GETDATE()) 
                    FROM dbo.myTable";

如果您只想显示日期部分,请使用

Text='<%# Bind("DT", "{0:yyyy-MM-dd}") %>'

或(强制使用当前文化的日期格式)

Text='<%# Bind("DT", "{0:d}") %>'

答案 2 :(得分:2)

如果值可以是null那么:

select ID, Name, Location, COALESCE(DT, getdate()) AS DT from myTable

答案 3 :(得分:1)

另一个选项,无需更改您的查询(并假设您想用今天的日期替换空日期):

Text='<%# string.Format(
              "{0:yyyy-MM-dd}",
              string.IsNullOrEmpty(Eval("DT").ToString()) ?
                  DateTime.Today : Eval("DT")) %>'

答案 4 :(得分:0)

将sql命令更改为

string strQuery = "select ID, Name, Location, getdate() as  DT from myTable ";

DT将是当前的日期时间。