c# - 从 MySQL 数据库中过滤数据并在 datagridview 中显示

标签 c# mysql

当用户从“Učitaj bazu članova”按钮加载数据库并选择某些参数(例如输入名称 David)时,我需要在我的应用程序中进行过滤(如果有几个具有相同名称的成员,则应该只过滤它们)并且通过检查单选按钮 Aktivan(成员的事件状态)来选择他所属的 Sekcija(并且有几个具有相同名称且在同一个 Sekcija 中的成员,例如 Tamburaši A grupa)及其状态,然后按 Filtriraj članove,它应该仅过滤事件名为 David 且位于同一个组合框 Sekcija (Tamburaši A grupa) 中的成员。或者,如果用户决定他只想按性别过滤成员(单选按钮 Muško 和 Žensko),则它应该只过滤例如男性 (Muško) 成员。或者,如果用户仅选择活跃(单选按钮 Aktivan)男性(单选按钮 Muško)成员,则它应该仅在 datagridview 中过滤男性活跃成员。 如果这有任何意义的话。如果您无法理解,我很抱歉,我正在尽力解释我想要做什么。

Design of my app and filter what I'm trying to make

我尝试了几种解决方案,但没有一个有效,所以我放弃了它们并且不会提及它们,因为我什至不记得我尝试过多少解决方案,到目前为止我在想要时设法做到了过滤成员是这个

(baza_filter_clanova.DataSource as DataTable).DefaultView.RowFilter = string.Format("ime LIKE '{0}%' OR prezime LIKE '{0}%'", pretraga_ime_prezime.Text);

在文本框中输入内容时,基本上仅按某个成员的姓名或姓氏进行过滤。但由于在我的数据库中我有两列(姓名和姓氏),我决定更改应用程序的设计,并允许用户在仅用于姓名的文本框中输入姓名,而在仅用于姓氏的文本框中输入姓氏(最终无法让它工作,所以我仍在寻找解决方案,这也导致它只能按姓氏过滤,很奇怪......)。

这是我在允许用户在一个文本框中输入姓名并在另一个文本框中输入姓氏时使用的代码,但它仅在输入姓氏时有效,如果我输入姓名,则它不会过滤任何内容它在 datagridview 中显示数据库中的所有记录。

private void Filtriraj_clanove_Click(object sender, EventArgs e)
    {
      (baza_filter_clanova.DataSource as DataTable).DefaultView.RowFilter = string.Format("ime LIKE '{0}%'", pretraga_ime.Text);
      (baza_filter_clanova.DataSource as DataTable).DefaultView.RowFilter = string.Format("prezime LIKE '{0}%'", pretraga_prezime.Text);
    }

最佳答案

过滤器属性一次只能保存一个值。当您输入姓氏时它会起作用,因为只有姓氏过滤器才有效。将您的方法更改为以下:

private void Filtriraj_clanove_Click(object sender, EventArgs e)
    {
      (baza_filter_clanova.DataSource as DataTable).DefaultView.RowFilter = string.Format("ime LIKE '{0}%' AND prezime LIKE '{1}%'", pretraga_ime.Text, pretraga_prezime.Text);
    }

如果您希望返回名字或姓氏的匹配项,则可能需要将 AND 替换为 OR。确保清除输入的值,使其不包含任何可能破坏 SQL 查询的特殊字符。

关于c# - 从 MySQL 数据库中过滤数据并在 datagridview 中显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57965709/

相关文章:

c# - 如何通过代码隐藏创建带复选框的TemplateField?

c# - 在 Azure 应用服务的 ASP.NET Core 中运行 Phantomjs.exe

c# - Google 财经,如何获取流式传输的 JSON 数据?

php - 如何在 Laravel 6 中删除数据库?

c# - 如何使用字符串作为索引?

c# - 理解有漏洞的应用程序的 Performance Profiler 输出?

android - 适配器.notifyDataSetChanged();不工作

mysql - WordPress 移动 MySql 遇到 DATETIME DEFAULT SQL 错误 : 1067

php - 根据每个分类的多重评级获取帖子

javascript - Sequelize .sync() : error in SQL syntax near NUMBER