[英]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.