0

我目前正在尝试将日期时间存储在数据库中。这个想法是当点击按钮时,数据库会将当前日期时间存储在数据库中。我尝试了一些方法,但它们提示我这个错误:

“'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();

我添加日期时间的方式有什么问题?

任何帮助将不胜感激。

4

4 回答 4

3

更正查询-

   query = "INSERT INTO dbo.url_map (long_url, expiry_date) Values ('" + tbLongURL.Text + "', '" + DateTime.Today + "')";
于 2013-06-26T08:07:22.003 回答
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

于 2013-06-26T09:07:24.197 回答
0

您可以直接将当前日期绑定到 SQL Server 中的“到期日期”列。

脚步:

  1. 右键单击您的表格并选择“设计”。
  2. 在您的情况下,单击所需的列“expiry_date”。
  3. 在列属性中,在常规部分中查找“默认值或绑定”。
  4. 将 'GETDATE()' 作为默认值,因此每当您插入记录时,它将以当前日期作为其值。
于 2013-06-26T09:41:53.097 回答
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);
于 2013-06-26T08:07:13.327 回答