c# 中SqlCommand使用参数的问题

.Net技术 码拜 8年前 (2016-05-15) 952次浏览
问一下能否使用参数来指定查询数据库中的某一列呢?
例如以下代码可以正常运行.

string autoHeader = dataGridView1.Columns[dataGridView1.CurrentCell.ColumnIndex].HeaderText;
SqlCommand comm = new SqlCommand("select distinct " + autoHeader + " from 领用表", conn);

以下代码就不对了

string autoHeader = dataGridView1.Columns[dataGridView1.CurrentCell.ColumnIndex].HeaderText;
SqlCommand comm = new SqlCommand("select distinct @Header from 领用表", conn);
SqlParameter sp = new SqlParameter("@Header", autoHeader);
comm.Parameters.Add(sp);

执行后其运行语句相当于
select distinct “@Header” from 领用表
为什么会这样呢?
要怎么改呢?
谢谢.

解决方案

1

每天回帖即可获得10分可用分!小技巧:教您怎么样更快获得可用分 你还可以输入10000个字符 提交回复(Ctrl+Enter)

10

不行,不能将参数用于列、表名查询,数据库无法编译sql的
你只能拼接sql

10

直接拼接就好啊

10

“为什么会这样呢?”,为什么不会这样呢?你怎么不把“Select”关键字也给变成变量参数呢?
本人毫无根据地胡乱编写代码,而 sql 又没有vs环境编译检查机制(除非你用 linq provider),自然遇到各种乱子。

9

不能,只能用第一种拼接sql的方法

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明c# 中SqlCommand使用参数的问题
喜欢 (1)
[1034331897@qq.com]
分享 (0)