我在C#中进行涉及2个表的查询。当我将信息输入所有组合框时,查询工作正常。但是当我尝试使用一些空的组合框进行查询时,它什么都不返回。
我知道这是字符串最终在查询中使用“”使其无效。无论如何,我可以重构我的查询,以便可以使用缺少的条目或甚至丢失的辅助表进行查询?谢谢你的建议。
当我填满所有字段并进行查询时,以下内容有效:
如果我只按如下方式填写了一些空白字段,则无效:
我的查询字符串:
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";
答案 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; }
}
请按照上面的代码继续使用其他组合框,并在添加第二个组合框的值时在值之间添加逗号。在以这种格式构建字符串之后,您可以将其附加到查询中,现在当您执行查询时,您不应该发现任何类型的错误。
希望这有帮助