【问题标题】:Should I use const string for SQL with parameters (.NET C#)?我应该对带参数的 SQL 使用 const 字符串(.NET C#)吗?
【发布时间】:2012-05-24 14:55:15
【问题描述】:

我想知道在使用这样的代码时是否应该使用 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 建议我以这种方式解决它,但有人告诉我不应该这样做,因为它并不是真正恒定的。添加参数时它会发生变化。我认为这种方式是正确的,因为它在运行代码的服务器上是恒定的,并且只有在到达数据库时才会改变。

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

【问题讨论】:

  • “添加参数时它会改变” - 是什么? sql 不会...

标签: c# sql string resharper constants


【解决方案1】:

参数占位符的字符串应该是常量,声明为常量是对的,它是可变的命令对象,但是查询字符串是常量和不可变的

【讨论】:

    猜你喜欢
    • 2022-10-14
    • 1970-01-01
    • 2011-07-18
    • 2010-11-08
    • 2011-12-31
    • 1970-01-01
    • 2012-07-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多