根据ComboBox选项动态创建查询

时间:2014-04-24 14:45:47

标签: c# mysql

我在C#中进行涉及2个表的查询。当我将信息输入所有组合框时,查询工作正常。但是当我尝试使用一些空的组合框进行查询时,它什么都不返回。

我知道这是字符串最终在查询中使用“”使其无效。无论如何,我可以重构我的查询,以便可以使用缺少的条目或甚至丢失的辅助表进行查询?谢谢你的建议。

当我填满所有字段并进行查询时,以下内容有效:

enter image description here

如果我只按如下方式填写了一些空白字段,则无效:

enter image description here

我的查询字符串:

string query = @"SELECT Agents." + comboq1.Text + ",  Agents." + comboq2.Text + ", Agents." + comboq3.Text + ", Agents." + comboq4.Text + ", "
                                + secondaryTable.Text + "." + stCombo1.Text + ", " + secondaryTable.Text + "." + stCombo2.Text
                                + " FROM Agents INNER JOIN " + secondaryTable.Text + " ON Agents.Dept_ID" + "="
                                + secondaryTable.Text + ".Dept_ID";

2 个答案:

答案 0 :(得分:0)

我建议您使用单独的字符串,方法是检查是否有任何组合框没有提供任何值,然后从字符串中省略该组合框值,然后将最后一个字符串追加到查询中,这不会导致任何问题。< / p>

答案 1 :(得分:0)

string agentsValue = string.empty;
if (!comboq1.Text.equals(string.empty))
{ agentsValue = "Agents."+comboq1.text; }
if (!agentsValue.equals(string.empty))
{ agentsValue +=","; }
if (!comboq2.Text.equals(string.empty))
{ 
if (agentsValue.equals(string.empty))
{ agentsValue = "Agents."+comboq2.text; }
else
{ agentsValue += "Agents."+comboq2.text; }
}

请按照上面的代码继续使用其他组合框,并在添加第二个组合框的值时在值之间添加逗号。在以这种格式构建字符串之后,您可以将其附加到查询中,现在当您执行查询时,您不应该发现任何类型的错误。

希望这有帮助