这个用 c# 编写的 Oracle SQL 查询给了我以下错误:无效字符
qur = " select * from emp where name LIKE '%" + TextBox1.Text + "%'";
我该如何解决这个问题?
问题是您的查询非常容易受到 Sql Injection 攻击。由于您没有使用参数化查询,因此在 TextBox1 中输入的任何内容都会破坏您的查询。
例如,如果我在文本框中输入:' char,您的查询将是select * from emp where name LIKE '%'%'
并且它会抛出错误。除此之外,它是漏洞,您不应使用此类查询。
您可以将查询更改为:
SqlCommand cmd= new SqlCommand( " select * from emp where name LIKE @myParam");
cmd.Parameters.AddWithValue("@myParam", "%" + TextBox1.Text + "%");
你错过了@
你应该如下使用它:
qur = " select * from emp where name LIKE '%'" + TextBox1.Text + "'%'";