【发布时间】:2019-02-28 22:22:12
【问题描述】:
我有一个字符串变量string SQLstr = "SELECT [column] FROM [DB].[Table] WHERE [column]= {0}"。这在查询VARCHAR 列时工作得非常好,但是如果我查询了一个 int 列,那么我会得到一个错误,大概是因为它正在查询一个带有字符串的 int 列。
由于textBox1.Text 是用户输入,有什么方法可以在运行SqlDataAdapter cmd = new SqlDataAdapter(string.Format(SQLstrL,textBox1.Text), conn) 时将其解释为int?
【问题讨论】:
-
这没有意义...请提供一个完整的不工作场景示例,并包含错误消息。
-
是的。它是使用参数调用的。您在这里拥有的模式绝对不是您应该如何编写另一个查询的方式。这对 sql 注入很开放。如果您使用参数,您可以防止注入并完全控制数据类型。在bobby tables 来访之前修复此问题。
-
您的代码存在SQL注入,您应该认真考虑在查询中采用参数
标签: c# sql-server winforms