我想知道在使用这样的代码时是否应该使用 const string:
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 建议我用这种方法解决它,但有人告诉我不应该这样做,因为它不是真正恒定的。添加参数时它会发生变化。我认为这种方式是正确的,因为它在运行代码的服务器上是不变的,只有在到达数据库时才会改变。
那么,最好的方法是什么?
最佳答案
带有参数占位符的字符串应该是常量,声明为常量是对的,可变的是命令对象,但是查询字符串是常量和不可变的。
关于c# - 我应该将常量字符串用于带参数的 SQL (.NET C#) 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10739991/