如何使用日历扩展器以印度格式在sql server中存储Date

时间:2013-09-28 10:44:50

标签: asp.net sql-server-2008

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

但显示错误: - 字符串未被识别为有效的DateTime。

1 个答案:

答案 0 :(得分: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");
}