【问题标题】:Datasource filtering on databound controls数据绑定控件上的数据源过滤
【发布时间】:2014-03-22 17:15:04
【问题描述】:

我在一个应用程序上有这个表单,我通过将employeemaster 数据源拖放到表单上来创建控件(文本框)。

目前,该表单可以满足我处理员工的所有需求。

我在employeemaster 表中创建了一个新字段(企业名称),我想存储与员工关联的特定企业。 我现在想设置一个条件,使表单只加载特定业务的员工作为变量。

如何过滤员工 BindingSource 以实现此目的? 我是否必须通过代码单独绑定每个控件与过滤器? 我在互联网上没有找到太多帮助。

【问题讨论】:

  • 你的数据源的数据源是什么? (数据表?)
  • 它是在 VS 中创建的数据集。添加新项目 -> 数据 -> 从数据库配置的数据集。

标签: c# winforms datasource bindingsource


【解决方案1】:

根据您的数据库中的数据量,您可以执行以下操作之一;

你要么过滤数据源:

bsEmployee.DataSource.Filter = "AcolumnName like 'value'";

或者您将创建一个 sql 查询并将其添加到您的 TableAdapter,这样您就不会将太多数据加载到您的应用程序中。 (要添加参数化查询,请转到 DataSet 设计器,右键单击要修改的 TableAdapter,然后添加查询。在 where 语句中,您可以编写类似“WHERE (columnName = @VariableName)”的内容

taEmployee.FillByDepartment(datasetName.dataTableName, departmentNameVariable);

【讨论】:

  • 感谢您的回复。第二种选择似乎更好。如果我将 WHERE (businessName LIKE @businessName) 添加到数据集设计器的语句中,我将如何将此新变量映射到代码中的业务名称变量?
  • 您是在问如何在 TableAdapter 中调用查询,或者如何在表单中绑定和添加新字段?
  • 我正在设置使用不同业务登录应用程序的每个用户。所有员工都保存在同一张桌子上。我有一个变量保存应用程序运行时的业务名称(会话)。我在问如何设置 where 语句参数来占用这个 businessname 会话。不知道我的英语够不够清楚。
  • 这正是我所需要的。将其更改为 taEmployee.FillBy(datasetName.dataTableName, departmentNameVariable);
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-03-29
  • 2017-12-04
  • 2016-12-06
  • 2020-03-29
  • 1970-01-01
相关资源
最近更新 更多