如何将所选日期保存到数据库?

时间:2015-04-11 09:08:32

标签: c# asp.net sql-server date gridview

我有一个日历,用户将选择日期,并且必须将其存储到数据库中。请帮我把日期保存到数据库

数据库中的日期数据类型为“date”。

我收到日期错误“输入字符串的格式不正确。”

我尝试从日历中插入的日期4/11/2015

这是我的编码

班级代码

public Boolean InsertBookings(int BookingID, DateTime Date, DateTime Returndate, int ReturntimeID, string Returnpickupaddress, string Returndropofdetails, string Comments)
    {

        OConnection = new SqlConnection(_ConnectionString);
        oCommand.Connection = OConnection;

        oCommand.CommandType = CommandType.StoredProcedure;
        oCommand.CommandText = "SP_INSERT_BOOKINGS";
        oCommand.Parameters.AddWithValue("@ParameterID", (int)SQLparameters.Insert);
        oCommand.Parameters.AddWithValue("@BookingID", BookingID);
        oCommand.Parameters.AddWithValue("@Date", Date);
        oCommand.Parameters.AddWithValue("@Returndate", Returndate);
        oCommand.Parameters.AddWithValue("@RetuntimeID", ReturntimeID);
        oCommand.Parameters.AddWithValue("@Returnpickupaddress", Returnpickupaddress);
        oCommand.Parameters.AddWithValue("@Returndropofdetails", Returndropofdetails);
        oCommand.Parameters.AddWithValue("@Comments", Comments);

        OConnection.Open();
        Boolean _Results = Convert.ToBoolean(oCommand.ExecuteNonQuery());
        OConnection.Close();
        return _Results;

    }

日历代码

protected void BookingCalendar1_SelectionChanged(object sender, EventArgs e)
{
    txtDate.Text = BookingCalendar1.SelectedDate.ToString("d");
    BookingCalendar1.Visible = false;
}

保存按钮

protected void btnbookings_Click(object sender, EventArgs e)
        {

            try
            {

                bool _var = _booking.InsertBookings(_BooingID,
                Convert.ToDateTime(txtdate.Text.ToString()),
                Convert.ToDateTime(txtReturndate.Text.ToString()),
                int.Parse(cboReturntime.SelectedValue.ToString()),
                txtReturnpickupaddress.Text,
                txtReturndropofdetails.Text,
                txtComments.Text);
            }
            catch (Exception ex)
            {

            }
        }

3 个答案:

答案 0 :(得分:0)

您可以尝试格式化日期值,以便作为ISO-8601字符串输入数据库,例如YYYY-MM-DD。

使用DateTime对象,您可以使用Date.UtcNow.ToString(" o")

答案 1 :(得分:0)

您可以将日期列数据类型更改为varchar(4)以消除此错误,但这不是您的问题的解决方案。要获得准确答案,请发布您要插入表格的样本日期。

答案 2 :(得分:0)

将两种数据类型都设为DATETIME。在插入查询的数据库中,如果需要,请使用CONVERT(DATE,@YourDateTime)