我正在将字符串或数字传递给SQL查询。
单引号和单引号内的单引号是什么意思?
select * from college where class = '"+txtclass.Text+"'
或
select * from college where class = '+txtclass.Text+'
答案 0 :(得分:-1)
您应该为SqlCommand使用参数。
这里有一个小例子:
using (var con = new SqlConnection("conection string"))
{
con.Open();
using (var cmd = con.CreateCommand())
{
// Here is where we add the parameters into the Sql Query, this way it will prevent SQL Injection
cmd.CommandText = "select * from college where class = @class";
// Now we add the value to the parameter @class, I'm assuming here that the column class is a NVarchar
cmd.Parameters.Add("@class", SqlDbType.NVarChar).Value = txtclass.Text;
using (var dr = cmd.ExecuteReader())
{
while (dr.Read())
{
// Do some code
}
dr.Close();
}
}
}
这个例子是针对Sql的,但是对MySql也可以做到,我们只需要使用MySql类,其余的都是相同的
注意:我知道这不能回答已经提出的问题,但是由于他的做法存在安全隐患,因此我决定举一个简单的示例,说明如何使其更加安全,因为答案是对该问题的评论