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

时间:2013-07-13 18:11:57

标签: c# sql winforms

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

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

2 个答案:

答案 0 :(得分:2)

创建BindingSource ,绑定到您的DataTable并使用Filter属性

答案 1 :(得分:1)

您可以使用DataTable Select方法。

DataTable.Select Method (String)

  

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

DataTable.Select Method (String, String)

  

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

DataTable.Select Method (String, String, DataViewRowState)

  

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

或者您可以创建DataViewmsdn)。

使用您在上面给我的链接下找到的那些方法的例子。

绑定到ListBox:

DataTable.Select:

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";