在Windows窗体应用程序中显示数据表中的特定行

本文关键字:数据表 显示 Windows 窗体 应用程序 | 更新日期: 2023-09-27 18:22:09

我是这方面的新手,但我正在使用C#,并试图创建一个Windows窗体应用程序,在该应用程序中,我只能显示数据表中的特定行。我使用的是一个断开连接的应用程序(将SQL数据库加载到数据集中),并且我试图只显示特定列的值等于用户选择的数字的行。

显示这些信息的最佳方式是什么?如何只显示那些特定的行?

在Windows窗体应用程序中显示数据表中的特定行

创建绑定源,绑定到DataTable并使用Filter属性

您可以使用DataTable Select方法。

DataTable.Select方法(字符串)

获取与筛选条件匹配的所有DataRow对象的数组。

DataTable.Select方法(字符串,字符串)

获取与筛选条件匹配的所有DataRow对象的数组,按照指定的排序顺序。

DataTable.Select方法(字符串,字符串,DataViewRowState)

获取与中的筛选器匹配的所有DataRow对象的数组与指定状态匹配的排序顺序。

或者您可以创建一个DataView(msdn)。

你可以在我上面给你的链接下找到使用这些方法的例子。

绑定到ListBox:

数据表。选择:

DataTable myTable = new DataTable();
myTable.Columns.Add("Id", typeof(int));
myTable.Columns.Add("Name", typeof(string));
DataRow myNewRow = null;
for (int i = 0; i < 10; i++)
{
    myNewRow = myTable.NewRow();
    myNewRow["Id"] = i;
    myNewRow["Name"] = "Name " + i.ToString();
    myTable.Rows.Add(myNewRow);
}
DataRow[] Array = myTable.Select("Id > 5");
DataTable newTable = myTable.Clone();
foreach (var item in Array)
{
    newTable.ImportRow(item);
}
listBox1.DataSource = newTable;
listBox1.ValueMember = "Id";
listBox1.DisplayMember = "Name";

数据视图:

   DataView custDV = new DataView(myTable, 
    "Id > 5", 
    "Name", 
    DataViewRowState.CurrentRows);
listBox1.DataSource = custDV;
listBox1.ValueMember = "Id";
listBox1.DisplayMember = "Name";