繁体   English   中英

日期时间在 C# 中不起作用

[英]date time is not working in c#

我有一个名为Tbl_Sud_Details的表,它有三列:

Name is varchar(),
Course is varchar(),
DateofAdmission is Datetime(),

当我以dd/mm/yyyy格式插入日期时,它给出了错误:

错误:将 varchar 数据类型转换为 datetime 数据类型导致值超出范围。 该语句已终止

SqlCommand cmd = new SqlCommand("Insert into  Tbl_Sud_Details(Name,Course,DateofAdmission)Values('" + ddlname.SelectedItem.Text + "','" + txtcourse.Text + "','" +Convert.ToDateTime(txtAdddate.Text).ToString("dd/MM/yyyy") + "')", con);
con.Open();
int i = cmd.ExecuteNonQuery();
con.Close();
if (i > 0)
{
    Page.ClientScript.RegisterStartupScript(this.GetType(), "k1", "<script language=javascript> alert(\"data is  save Successfully \"); </script>");
    return;

}

SQL 不支持"dd/MM/yyyy" 试试"yyyy-MM-dd" 为了避免注入攻击,我会使用参数来提交数据。

using (MySqlConnection con = new MySqlConnection(connString))
{
    string stm = "Insert into  Tbl_Sud_Details(Name,Course,DateofAdmission)Values(@Name,@Course,@DateofAdmission)";
    using (SqlCommand cmd = new SqlCommand(stm))
    {
        cmd.Parameters.Add("@Name", SqlDbType.VarChar).Value = ddlname.SelectedItem.Text;
        cmd.Parameters.Add("@Course", SqlDbType.VarChar).Value = txtcourse.Text;
        cmd.Parameters.Add("@DateofAdmission", SqlDbType.DateTime).Value = Convert.ToDateTime(txtAdddate.Text);

        con.Open();
        int i = cmd.ExecuteNonQuery();
        con.Close();
    }
}

根据您使用的数据库后端,您可能需要对日期进行不同的编码。

有关 SQL Server 中的示例,请参阅此问题: Sql query to insert datetime in SQL Server

SQL 理解这种格式"yyyy-MM-dd" 因此,您的自定义日期时间格式必须遵循默认日期时间。 当您发送默认日期时间时,它会通过 sql 理解。 同样在用于客户端视图的 ui 中,您可以通过根据需要对其进行格式化来管理它,但是在发送到数据库时必须遵循默认格式

SqlCommand cmd = new SqlCommand("Insert into Tbl_Sud_Details(Name,Course,DateofAdmission)Values('" + ddlname.SelectedItem.Text + "','" + txtcourse.Text + "',CONVERT(datetime,'" + txtAdddate.文本 + "',103))", con);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM