如何使用文本框在数据网格视图中搜索数据

时间:2019-06-07 11:41:13

标签: c# sql asp.net sql-server

想象一下,您有一个表,并且想要过滤任何类型的数据。我想显示与该值相关的整行,例如,日期,名称,描述,仅按过滤器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";
}

2 个答案:

答案 0 :(得分:0)

一些希望有用的提示,尽管我认为这些并不是您想要的答案,但它们应该为您提供有关良好应用程序设计的指导...

  1. 切勿将UI代码与数据层代码混合使用(请查看N-Tier Architectures)
  2. 应该避免SQL注入,或者考虑使用ORM
  3. 将控件绑定到对象应该更可取,以从DB定向数据值(请阅读“关注点分离”。

虽然有些东西可能更接近您的预期目标...

考虑使用“ LINQ to SQL”之类的方法……它允许您的C#成为C#,并且底层框架将以“安全”的方式处理针对数据库的查询。

为了将数据实际绑定到网格以呈现结果,请考虑以下选项...

https://www.google.com/search?q=binding+a+datagrid+view+to+an+object+collection

...

最终通知

我认识到这可能会给您带来更多问题,但这并不是故意的,但我认为有很多需要介绍的实施方面,以便您改进使用此技术的方式,以避免软件开发中常见的陷阱。

答案 1 :(得分:-1)

只需准备一个动态sql原始查询,以针对匹配的列值搜索匹配的行。

注意:切勿在原始查询中直接使用参数值,而应始终使用sql参数传递值。这有助于避免SQL注入。