我已经修改了数据表中的数据。如何将修改后的数据放回表中?

时间:2019-01-19 05:14:11

标签: c# asp.net datatable

我已修改数据表中的数据。尽管我仅需要Date,但ExpireDate列返回日期+时间。我已成功阅读每一行以返回正确的格式,但是如何将修改后的日期列返回到表中,以便可以在Web表单中显示它?

con.Open();
using (SqlDataAdapter sda = new SqlDataAdapter(cmd))
    {
       DataTable dt = new DataTable();                           
       foreach (DataRow dr in dt.Rows)
       {
          dr["ExpireDate"] = DateTime.Parse((dr["ExpireDate"].ToString())).ToShortDateString();
       }                                                      
       sda.Fill(dt);
       tblBoard.DataSource = dt;
       tblBoard.DataBind();
       con.Close();
    }

这是网络表单:

<asp:GridView ID="tblBoard" runat="server" AutoGenerateColumns="false">
    <Columns>                
        <asp:BoundField DataField="FirstName" HeaderText="First Name" />
        <asp:BoundField DataField="LastName" HeaderText="Last Name" />
        <asp:BoundField DataField="ExpireDate" HeaderText="Expire Date" />               
    </Columns>
</asp:GridView>

表格中仍显示旧日期格式。

2 个答案:

答案 0 :(得分:0)

请勿更改存储在DataTable本身中的值...而是通过指定DataFormatString来修改显示给用户的显示方式:

<asp:BoundField DataField="ExpireDate"
                HeaderText="Expire Date"
                DataFormatString="{0:dd/MM/yyyy}" />

答案 1 :(得分:0)

如果您从后端更改日期格式,并且该日期未在前端显示,则请尝试删除浏览器的捕获,然后重试。

此外,无需在后端使用另外一种解决方案。直接将表数据绑定到网格视图数据源和仅前端集DataFormatString。

<asp:BoundField DataField="ExpireDate" HtmlEncode="false" 
DataFormatString="{0:d}" />

<asp:BoundField DataField="ExpireDate" HtmlEncode="false" 
 DataFormatString="{0:MM/dd/yyyy}" />