1

我正在开发一个 asp.net Web 应用程序,我必须在 sql server 2008 中以“dd-MM-yyyy”的印度格式存储日期。我有日历扩展器在文本框中输入日期然后存储在 sql 中。

设计是:-

<asp:TextBox ID="txtDate" runat="server"></asp:TextBox>
<asp:CalendarExtender ID="calStart" runat="server" TargetControlID="txtDate"
    PopupButtonID="imgvStartDate" Format="dd/MM/yyyy"></asp:CalendarExtender>
<asp:ImageButton ID="imgvStartDate" runat="server" ImageUrl="~/images/iconCalendar.gif"
TabIndex="6" Style="margin-left: -0%; height: 18px;" />

在后面的代码中:-

Entity_SupplierPayment objSupplierPayment = new Entity_SupplierPayment();
    objSupplierPayment.Date = DateTime.ParseExact(txtDate.Text.Trim(), format, CultureInfo.CurrentCulture);

但它显示错误:-- 字符串未被识别为有效的日期时间。

4

1 回答 1

1

试试这个:

1 - 设置日期:将印度日历格式转换为公历格式,然后存储在数据库中:

objSupplierPayment.Date = DateTime.ParseExact(txtDate.Text, "dd/MM/yyyy", null);

2 - 获取日期:从数据库中读取日期并转换为印度格式,然后在 GridView 中显示(假设单元格 5 是 DateTime 字段):

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
    if (e.Row.RowType == DataControlRowType.DataRow
       && !string.IsNullOrEmpty(e.Row.Cells[5].Text)
       && e.Row.Cells[5].Text != "&nbsp;")
        e.Row.Cells[5].Text = Convert.ToDateTime(e.Row.Cells[5].Text).ToString("dd/MM/yyyy");
}
于 2013-09-28T10:52:58.690 回答