SqlCommand 中的参数:列名称参数化的替代方案
在 C# 中,存储过程并不总是动态列名称参数化所需的解决方案。问题出现了:我们可以在不借助存储过程的情况下完成此任务吗?
简短的答案是否定的。 SqlCommand 不支持列名参数化。但是,我们可以在运行时动态构建查询。
为了防止注入攻击,验证输入列名称(在本例中为“槽”)是否得到批准和预期至关重要。考虑到这一点,我们可以按如下方式构建查询:
// TODO: verify that "slot" is an approved/expected value SqlCommand command = new SqlCommand("SELECT [" + slot + "] FROM Users WHERE name=@name; ") prikaz.Parameters.AddWithValue("name", name);
此方法允许我们参数化“@name”等输入值,同时根据指定的列名称动态构建查询。
以上是C# SqlCommand 可以在没有存储过程的情况下参数化列名吗?的详细内容。更多信息请关注PHP中文网其他相关文章!