0
string _name = txtName.Text;
string _addr = txtAddr.Text;
DateTime _dof = DateTime.Parse(drpDate.SelectedValue + drpMonth.SelectedValue + drpYear.SelectedValue);
string _country = drpCountry.SelectedValue;
string _gender = rdiomf.SelectedValue;

using (SqlConnection conn = conMgr.GetDatabaseConnection())
{
    using (SqlCommand cmd = new SqlCommand("insertStudent",conn))
    {
        cmd.CommandType = CommandType.StoredProcedure;

        cmd.Parameters.Clear();
        cmd.Parameters.AddWithValue("@sName", _name);
        cmd.Parameters.AddWithValue("@sAddress", _addr);
        cmd.Parameters.AddWithValue("@sDob", _dof);
        cmd.Parameters.AddWithValue("@sCountry", _country);
        cmd.Parameters.AddWithValue("@sGender", _gender);

        cmd.ExecuteNonQuery();
    }

    conn.Close();
}

该错误表示日期错误。我使用下拉框获取日期。我怎样才能解决这个问题?请帮我。我是存储过程和 asp.net 的新手

4

5 回答 5

4

为此使用新的日期时间。

DateTime _dof = new DateTime(Convert.ToInt32(drpYear.SelectedValue), Convert.ToInt32(drpMonth.SelectedValue), Convert.ToInt32(drpDate.SelectedValue));
于 2013-09-30T06:09:50.193 回答
1

我认为使用三个下拉菜单来构建日期并不是一个好主意。处理验证非常困难。(例如,2013 年 2 月 30 日是有效日期吗??)改用 Patetimepicker 中的 .net 构建。这一切都由框架处理。如果是客户端,请使用 JQuery 插件。

然后您可以简单地将 dateTimePicker1.Value 传递给存储过程参数。

这对你来说会更容易。

于 2013-09-30T06:14:28.210 回答
1

The way you are doing it you are trying to convert let's say 010213 this is the format you are trying to convert which will fetch String was not recognized as a valid DateTime.error. Use - to differentiate between months and years.

DateTime _dof = Convert.toDateTime(drpDate.SelectedValue +"-"+ drpMonth.SelectedValue +"-"+drpYear.SelectedValue);

OR use this overload.

enter image description here

于 2013-09-30T08:36:34.330 回答
0

您可以使用 jquery datepicker 而不是三个下拉列表..

         <html lang="en">
      <head>
       <meta charset="utf-8" />
           <title>jQuery UI Datepicker - Default functionality</title>
            <link rel="stylesheet"href="http://code.jquery.com/ui/1.10.3/themes/smoothness/jquery-ui.css" />
            <script src="http://code.jquery.com/jquery-1.9.1.js"></script>
          <script src="http://code.jquery.com/ui/1.10.3/jquery-ui.js"></script>
            <link rel="stylesheet" href="/resources/demos/style.css" />
                 <script>
                  $(function() {
                  $( "#datepicker" ).datepicker();
                  });
               </script>
           </head>
           <body>
            <p>Date: <input type="text" id="datepicker" /></p>
         </body>
            </html>
于 2013-09-30T06:41:28.493 回答
0

您可以使用如下下拉值:-

字符串_datetime=drpMonth.SelectedValue+drpDate.SelectedValue+drpYear.SelectedValue

日期时间_dof = Convert.ToDateTime(_datetime);

于 2013-09-30T08:31:51.887 回答