创建字符串表达式时出现意外标记?

Unexpected token when creating a string expression?

我有以下代码:

public void UpdateCardSetColumn(CARD cardColumn, bool value, string cardId)
{
    string strValue = value ? "1" : "0";

    sql = $"UPDATE Card SET {cardColumn.Text()} = {strValue}​ WHERE CardGuid = '{​cardId}​'";

    RunExecute(db2, sql);
}

这里有错误'{cardId

它告诉我

Invalid Expression term "

你需要知道这种字符串连接是可以避免的,它很容易受到 SQL 注入攻击,你应该始终使用 parameterized queries to avoid SQL Injection 并且也可以消除错误,比如这个:

sql = "UPDATE Card SET cardColumn = @strValue​ WHERE CardGuid = @​cardId";
yourSqlCommand.Parameters.AddWithValue("@strValue​ ", cardColumn.Text);
yourSqlCommand.Parameters.AddWithValue("@​cardId", ​cardId);

尽管直接指定类型并使用 Value 属性 优于 AddWithValue:

yourSqlCommand.Parameters.Add("@​cardId", SqlDbType.VarChar).Value = ​cardId;

在此处阅读更多内容:https://blogs.msmvps.com/jcoehoorn/blog/2014/05/12/can-we-stop-using-addwithvalue-already/

再次输入该行时问题已解决。文本中一定有一些 non-ascii 字符,因为它现在运行良好。