我正在开发一个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。
答案 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 != " ")
e.Row.Cells[5].Text = Convert.ToDateTime(e.Row.Cells[5].Text).ToString("dd/MM/yyyy");
}