【问题标题】:How can i save selected date to the database?如何将选定的日期保存到数据库?
【发布时间】:2015-06-17 00:53:51
【问题描述】:

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

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

在“输入字符串的格式不正确”这一日期出现错误。

我试图从日历中插入的日期 2015 年 4 月 11 日

这是我的代码

类代码

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)
            {

            }
        }

【问题讨论】:

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


    【解决方案1】:

    您可以尝试将输入数据库的日期值格式化为 ISO-8601 字符串,例如yyyy-MM-dd。

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

    【讨论】:

    • 我只需要没有时间的日期
    • 试图从日历中插入的日期 2015 年 4 月 11 日
    • 对,但它是一个 DateTime 对象吗?它代表您希望输入的正确日期?所以你可以改变它的输出方式......
    • 如果我理解正确,我已将此格式更改为“MM/dd/yyyy”,但仍然没有结果..请帮助
    • 几乎,但是在您将日期发送到数据库时,格式应该是“yyyy-MM-dd”,例如oCommand.Parameters.AddWithValue("@Date", Date.ToString("yyyy-MM-dd"));
    【解决方案2】:

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

    【讨论】:

    • 我仍然面临着价值合一的问题。我确实指定了 DataTextField 和 DataVlaue 字段
    • 打开新线程并将您的代码发送到那里解决它(与我分享它的链接)。如果您的日期问题已解决,请标记答案。
    【解决方案3】:

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

    【讨论】:

    • 正在使用过程插入
    • 我的意思是,将日期时间转换为日期,然后插入
    猜你喜欢
    • 1970-01-01
    • 2014-07-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多