如何使用组合框更改 datagridview 表?
Posted
技术标签:
【中文标题】如何使用组合框更改 datagridview 表?【英文标题】:How can I change datagridview table with combobox? 【发布时间】:2020-06-01 08:13:10 【问题描述】:我尝试使用组合框更改 datagridview 表。但我不能改变参数。如何更改数据库表?
public DataTable TableLoad()
DataSet AL2020DS = new DataSet();
SqlDataAdapter SQLDA = new SqlDataAdapter();
SqlCommand Cmd1;
string Sql = "SELECT * FROM @value ORDER BY [Donanım Seri No] ASC";
Cmd1 = new SqlCommand(Sql, con);
Cmd1.Parameters.AddWithValue("@value", cbbox_llisteler.Text);
SQLDA.SelectCommand = Cmd1;
DataTable AL2020DT = new DataTable();
SQLDA.Fill(AL2020DT);
return AL2020DT;
public Form1()
InitializeComponent();
dataGridView1.DataSource = TableLoad();
当我尝试这个参数命令时我得到这个错误:必须声明表变量“@value”
【问题讨论】:
Can we stop using AddWithValue() already? 2008 完全不受支持。这对某人来说应该很重要。 【参考方案1】:你的@value 没有被插值。使用 string.Format()
或者如果您使用 C#6,则使用以下语法。另外,请注意我已经删除了ASC
,因为这是默认设置,无需提及。
string Sql = $"SELECT * FROM value ORDER BY [Donanım Seri No]";
再次,在下面的代码行中,您尝试将表名作为参数传递,这是不可能的。您只能将查询参数作为参数传递,而不是表/列名。
所以基本上你会喜欢
string Sql = $"SELECT * FROM cbbox_llisteler.Text ORDER BY [Donanım Seri No] ASC";
Cmd1 = new SqlCommand(Sql, con);
SQLDA.SelectCommand = Cmd1;
【讨论】:
如果他需要通过 [Donanım Seri No] = @value 这样的条件怎么办。我认为 OP 正在寻求在 where 条件下传递值。 @SurajKumar 我看不到。我相信你不能在WHERE
子句中传递表名。
我在想 - Select * from tblSerialNo where [Donanım Seri No] = @value.
那么如何在没有参数的情况下更改表格?
当我尝试这段代码时,我得到了这个错误:'' 附近的语法不正确。【参考方案2】:
我找到解决办法
string Sql = "SELECT * FROM " + TextBox1.Text + " ORDER BY [Hardware Serial Number] ASC"
我在点击功能中使用了这段代码。
【讨论】:
以上是关于如何使用组合框更改 datagridview 表?的主要内容,如果未能解决你的问题,请参考以下文章
使用组合框从数据库中选择表并填充 datagridview - 无法使其工作