SQL中单引号和双引号的用途是什么?

时间:2019-04-26 08:00:39

标签: c# asp.net sql-server quotes

我正在将字符串或数字传递给SQL查询。

单引号和单引号内的单引号是什么意思?

select * from college where class = '"+txtclass.Text+"'

select * from college where class = '+txtclass.Text+'

1 个答案:

答案 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类,其余的都是相同的

注意:我知道这不能回答已经提出的问题,但是由于他的做法存在安全隐患,因此我决定举一个简单的示例,说明如何使其更加安全,因为答案是对该问题的评论