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



我有以下代码:

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

它告诉我

无效表达式项";

您需要注意,这种字符串串联是可以避免的,并且它容易受到SQL注入攻击,您应该始终使用参数化查询来避免SQL注入,并消除错误,类似于以下内容:

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/

当再次输入行时,问题得到了解决。文本中一定有一些非ascii字符,因为它现在运行良好。

最新更新