问一下能否使用参数来指定查询数据库中的某一列呢?
例如以下代码可以正常运行.
例如以下代码可以正常运行.
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
你只能拼接sql
10
直接拼接就好啊
10
“为什么会这样呢?”,为什么不会这样呢?你怎么不把“Select”关键字也给变成变量参数呢?
本人毫无根据地胡乱编写代码,而 sql 又没有vs环境编译检查机制(除非你用 linq provider),自然遇到各种乱子。
本人毫无根据地胡乱编写代码,而 sql 又没有vs环境编译检查机制(除非你用 linq provider),自然遇到各种乱子。
9
不能,只能用第一种拼接sql的方法