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的新手
答案 0 :(得分:4)
使用新的日期时间。
DateTime _dof = new DateTime(Convert.ToInt32(drpYear.SelectedValue), Convert.ToInt32(drpMonth.SelectedValue), Convert.ToInt32(drpDate.SelectedValue));
答案 1 :(得分:1)
我认为使用三个下拉列表构建日期并不是一个好主意。处理验证非常困难。 (例如,2013年2月30日是有效日期??)请改用Patetimepicker中的.net版本。这一切都由框架处理。如果是客户端,请使用JQuery插件。
然后您可以简单地将dateTimePicker1.Value传递给store procedure参数。
对你来说会更容易。
答案 2 :(得分:1)
你正在尝试转换的方式,你试图转换让我们说010213
这是你试图转换的格式,它将获取String was not recognized as a valid DateTime.
错误。使用-
来区分月份和年份。
DateTime _dof = Convert.toDateTime(drpDate.SelectedValue +"-"+ drpMonth.SelectedValue +"-"+drpYear.SelectedValue);
或者使用此过载。
答案 3 :(得分: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>
答案 4 :(得分:0)
您可以使用下面的下拉值: -
string _datetime = drpMonth.SelectedValue + drpDate.SelectedValue + drpYear.SelectedValue
Datetime _dof = Convert.ToDateTime(_datetime);