什么是“WHERE x =?”在SQL中意味着

时间:2013-12-05 19:12:47

标签: c# sql

这段代码是用C#编写的,它调用数据库来从中获取数据。但是我不明白“什么是b.CompRec =?”意味着

    public string GetFileNameAndTitle(int compRec)
    {
        string fileNameAndTitle = "";
        string sql = "SELECT a.FileName, a.Title FROM (Files a INNER JOIN Components b ON a.RecNo=b.FileRec) WHERE b.CompRec = ?";
        using (OleDbCommand cmd = new OleDbCommand(sql, cn))
        {               
            cmd.Parameters.AddWithValue("@CompRec", compRec);
            OpenConnection();    }

2 个答案:

答案 0 :(得分:10)

这是一个参数化语句。

cmd.Parameters.AddWithValue("@CompRec", compRec);

该行设置在服务器上执行查询时的实际值。这可以防止SQL注入,并且是100%正确的方法!

答案 1 :(得分:2)

它基本上是一个占位符,您可以在以后放置数据。这使您可以从查询中使用的数据中分离SQL语句。这是参数化语句的语法。