繁体   English   中英

是否应该对带有参数(.NET C#)的SQL使用const字符串?

[英]Should I use const string for SQL with parameters (.NET C#)?

我想知道在使用这样的代码时是否应该使用const字符串:

    public DataTable GetSomeData(int id)
    {
        var con = new SqlConnection(ConnString);
        const string sql = "SELECT * FROM [data] WHERE [id]=@id";
        var cmd = new SqlCommand(sql, con);
        cmd.Parameters.AddWithValue("@id", id);

        var dt = new DataTable();
        con.Open();
        SqlDataReader dr = cmd.ExecuteReader();
        dt.Load(dr);
        con.Close();

        return dt;
    }

ReSharper建议我以这种方式解决它,但是我被告知我不应该这样做,因为它并不是真正恒定的。 添加参数时,它会更改。 我认为这种方式是正确的,因为它在运行代码的服务器上是恒定的,并且仅在到达数据库时才更改。

那么,什么是最好的方法呢?

带有参数占位符的字符串应该是常量,将其声明为常量是正确的,它是可变的命令对象,但查询字符串是常量且不可变。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM