使用cookie名称更新表mysql create

时间:2015-07-13 08:47:42

标签: c# mysql cookies

我在c#中的项目为单用户身份验证创建了一个临时表,其中包含用户名和cookie记忆。

现在我需要用cookie名称更新这个临时表mysql create,但是我有这个错误:

Compiler Error Message: CS1010: Newline in constant

怎么了?

我的代码如下。

private void UpdateProduct(string productID)
{
    string sql = String.Format(@"Update `tbl_" + Request.Cookies["userName"].Value + "`
                                set Product = 1 
                                where ID = {0}",
                                    productID);

    using (OdbcConnection cn =
        new OdbcConnection(ConfigurationManager.ConnectionStrings["MySQL"].ConnectionString))
    {
        cn.Open();
        using (OdbcCommand cmd = new OdbcCommand(sql, cn))
        {
            cmd.ExecuteNonQuery();
        }
    }
}

1 个答案:

答案 0 :(得分:0)

你的

"`
set Product = 1 
where ID = {0}"

部分仍然需要是逐字字符串文字,因为它是一个多行字符串。改变它;

string sql = String.Format(@"Update `tbl_" + Request.Cookies["userName"].Value + @"`
                            set Product = 1 
                            where ID = {0}",
                            productID);

我不认为您需要为表名使用严重的重音字符,因为它不是关键字或其他内容。

顺便说一下,既然你把你的表作为输入,我强烈建议你在将它放入sql或创建白名单之前进行强有力的验证。但是,您应该始终使用parameterized queries。这种字符串连接对SQL Injection攻击开放。