1

我使用 Web 用户控件中某些页面元素的值创建一个字符串,如下所示

string bookingdate = ddlDate.SelectedItem.Text 
                       + "/" + ddlMonth.SelectedValue + "/" 
                       + ddlMonth.SelectedItem.Text.Substring(4, 2);

并得到“字符串未被识别为有效的日期时间。” 以下行的错误

cmd.Parameters.Add(new SqlParameter("@ArrivalDate", SqlDbType.DateTime)).Value = 
    DateTime.ParseExact(bookingdate, "dd/MM/yyyy", CultureInfo.InvariantCulture);

如何更改此字符串“bookingdate”的值来解决问题。

4

2 回答 2

1

据我所知,您需要Indian Date Format的是dd/mm/yyyy. 因此,在您的代码中,将参数作为字符串传递,并在 sql 中使用Convert(date,Convert(datetime,@ArrivalDate,103)). 如果date您只需要日期,则用作您的数据类型,Sql 2008 or above否则使用

Convert(datetime,@ArrivalDate,103) and leave your datatype as datetime

在 cs 中:

cmd.Parameters.AddWithValue("@ArrivalDate", bookingdate);
于 2013-09-15T19:57:54.720 回答
1

因此ddlMonth包含这种格式的项目(您将链接发布到您的页面):

<option value="08">Aug 14</option>

现在您尝试从中提取月份和年份部分:

ddlMonth.SelectedValue + "/" + ddlMonth.SelectedItem.Text.Substring(4, 2)

您的格式字符串是这样的:dd/MM/yyyy

你已经看到问题了吗?格式字符串需要四位数的年份。

而是使用此格式字符串:dd/MM/yy

DateTime.ParseExact(bookingdate, "dd/MM/yy", CultureInfo.InvariantCulture);
于 2013-09-15T20:11:11.660 回答