ExecuteNonQuery错误

时间:2014-06-05 09:12:48

标签: c# mysql asp.net

我需要更新我的数据库以将日期设置为当前时间戳。但是,我的ExecuteNonQuery在')附近提供了异常"不正确的语法。 &#34 ;.谁能告诉我有什么问题? 这是带错误的函数:

protected void setprint(object sender, EventArgs ev)
{
    GridViewRow row = ((LinkButton)sender).Parent.Parent as GridViewRow;
    inv = row.Cells[1].ToString().Trim();

    con = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].ToString());
    cmd = new SqlCommand("update invdata set ViewDate = CURRENT_TIMESTAMP() where InvoiceNumber= '" + inv + "'", con);
    try
    {
        con.Open();
        cmd.ExecuteNonQuery();
    }
    finally
    {
        if (con != null)
            con.Close();
    }

}

3 个答案:

答案 0 :(得分:4)

CURRENT_TIMESTAMP不应该有()

所以将其改为

cmd = new SqlCommand("update invdata set ViewDate = CURRENT_TIMESTAMP where InvoiceNumber= '" + inv + "'", con);

答案 1 :(得分:1)

使用GetDate()函数来获取当前日期和时间,而不是使用CURRENT_TIMESTAMP。

答案 2 :(得分:0)

我还建议将SQL连接添加到使用块中,这样就可以处理连接,而不必在finally块中手动关闭它。

   private void Form1_Load(object sender, EventArgs e)
    {
        using (con = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].ToString())) ;
        {
            cmd = new SqlCommand("update invdata set ViewDate = GETDATE() where InvoiceNumber= '" + inv + "'", con);


            con.Open();
            cmd.ExecuteNonQuery();
        }
    }
}

}