我正在尝试找出为什么这段代码在 C# 中不起作用以及如何修复它。
string first = "hello";
string second = "look at" + first + "me";
有什么建议吗?
编辑: 抱歉,我认为我犯的错误是一个简单的新手错误。我想还有更多。 这是我的实际代码:
string toolOp = lstToolOpen.SelectedValue.ToString();
string sqlComm = "INSERT INTO ES_TOOL_FACET (esfa_facet, esfa_tool) values (" +
+ toolOp + ", " + cmbFacet.SelectedValue +" ) ";
我得到的错误是:运算符 + 不能应用于“字符串”类型的操作数。第3行代码的toolOp下有一条红线。
最佳答案
在 toolOp
之前有两个 +
。应该是:
string sqlComm = "INSERT INTO ES_TOOL_FACET (esfa_facet, esfa_tool) values (" +
toolOp + ", " + cmbFacet.SelectedValue +" ) ";
话虽如此,我还是建议您使用参数化查询。请记住,每次在构造 SQL 查询时使用 +
运算符都是错误的:
string sqlComm = "INSERT INTO ES_TOOL_FACET (esfa_facet, esfa_tool) VALUES (@esfa_facet, @esfa_tool)";
sqlCommand.Parameters.AddWithValue("@esfa_facet", toolOp);
sqlCommand.Parameters.AddWithValue("@esfa_tool", cmbFacet.SelectedValue);
现在您可以安全地抵御 SQL 注入(inject)了。
结论:永远不要在 SQL 查询中使用 +
。
关于c# - c#中的字符串组合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4552571/