想象一下,您有一个表,并且想要过滤任何类型的数据。我想显示与该值相关的整行,例如,日期,名称,描述,仅按过滤器1表字段的值
string filter = "";
string command = "SELECT * FROM Movimentos WHERE [Tipo de Movimento] = 'Crédito'";
if (textDataMovimento.Text != "")
{
filter = filter + "[Data Movimento] LIKE '%" + textDataMovimento.Text + "%' AND";
}
if (textDataValor.Text != "")
{
filter = filter + " [Data Valor] LIKE '%" + textDataValor.Text + "%' AND";
}
if (textDescricao.Text != "")
{
filter = filter + " [Descrição] LIKE '%" + textDescricao.Text + "%' AND";
}
if (textValor.Text != "")
{
filter = filter + " [Valor] LIKE '%" + textValor.Text + "%' AND";
}
if (textTipodeMovimento.Text != "")
{
filter = filter + "[Tipo de Movimento] LIKE '%" + textTipodeMovimento.Text + "%'AND";
}
答案 0 :(得分:0)
一些希望有用的提示,尽管我认为这些并不是您想要的答案,但它们应该为您提供有关良好应用程序设计的指导...
虽然有些东西可能更接近您的预期目标...
考虑使用“ LINQ to SQL”之类的方法……它允许您的C#成为C#,并且底层框架将以“安全”的方式处理针对数据库的查询。
为了将数据实际绑定到网格以呈现结果,请考虑以下选项...
https://www.google.com/search?q=binding+a+datagrid+view+to+an+object+collection
...
最终通知
我认识到这可能会给您带来更多问题,但这并不是故意的,但我认为有很多需要介绍的实施方面,以便您改进使用此技术的方式,以避免软件开发中常见的陷阱。
答案 1 :(得分:-1)
只需准备一个动态sql原始查询,以针对匹配的列值搜索匹配的行。
注意:切勿在原始查询中直接使用参数值,而应始终使用sql参数传递值。这有助于避免SQL注入。