我目前正在尝试将日期时间存储在数据库中。想法是当按下按钮时,数据库将把当前日期时间存储在数据库中。 我尝试了一些方法,但他们提示我这个错误:
“'26 / 6/2013 00:00:00'附近的语法不正确”
这是我的代码:
con.Open();
query = "INSERT INTO dbo.url_map (long_url, expiry_date) Values ('" + tbLongURL.Text + "' , '" + DateTime.Today + "')";
SqlCommand cmd = new SqlCommand(query, con);
cmd.Parameters.AddWithValue("@long_url", tbLongURL.Text);
cmd.Parameters.AddWithValue("@expiry_date", DateTime dt = DateTime.ParseExact(DateTime.Today.ToString(), "dd/MM/yyyy h:mm:ss tt", CultureInfo.InvariantCulture));
cmd.ExecuteNonQuery();
我添加日期时间的方式有什么问题?
任何帮助将不胜感激。
答案 0 :(得分:3)
更正了查询 -
query = "INSERT INTO dbo.url_map (long_url, expiry_date) Values ('" + tbLongURL.Text + "', '" + DateTime.Today + "')";
答案 1 :(得分:0)
如果您使用参数,我认为您的查询应该是
query = "INSERT INTO dbo.url_map (long_url, expiry_date) Values (@long_url, @expiry_date)";
//this way sqlcommand make sense
SqlCommand cmd = new SqlCommand(query, con);
cmd.Parameters.AddWithValue("@long_url", tbLongURL.Text);
cmd.Parameters.AddWithValue("@expiry_date", DateTime.Today);
答案 2 :(得分:0)
protected void Button1_Click(object sender, EventArgs e)
{
Insert();
}
public void Insert()
{
try
{
_conn = new SqlConnection(con);
_cmd = new SqlCommand();
_cmd.Connection = _conn;
_conn.Open();
_cmd.CommandType = CommandType.StoredProcedure;
_cmd.CommandText = "insert_date";
_cmd.Parameters.Add("@Date",SqlDbType.DateTime).Value = DateTime.Now;
_cmd.ExecuteNonQuery();
_conn.Close();
}
catch (Exception ex)
{
}
}
存储过程:
创建过程insert_date @Date datetime 如 插入DateTable值(@Date)
插入表格后的结果:
1 2013-06-26 14:29:36.987
答案 3 :(得分:0)
您可以直接将当前日期绑定到SQL Server中的“expiry_date”列。
步骤: