c#显示所选数据

时间:2012-03-09 21:44:37

标签: c# winforms

我想只显示包含我在form1中输入的卡号的数据。我的表看起来像这样

ID      cardNO     type     amount           date
1       1234       W    100.0000    08/03/2012 17:45:09
4       3455       W    100.0000    08/03/2012 22:10:58
5       5454       W    5.0000          09/03/2012 21:36:45ou

所以,如果我输入1234,则只显示包含该cardNo的数据 例如

ID      cardNO     type     amount           date
1       1234       W       100.0000       08/03/2012 17:45:09

我从form1传递了一个名为show2.cardNO

的变量

我不确定如何在视觉C#中实现这一目标

我想在数据网格中显示它

2 个答案:

答案 0 :(得分:0)

变量名称并不像变量类型和用于显示的控件那么重要。

无论控件和类型是什么,您都需要将数据过滤为新变量,然后将其传递给控件进行显示。

以下代码使用ListBox(lbAvailable)进行显示,使用文本框(txtFilter)输入值以过滤ListBox。确保包含对LINQ的引用。

private int _filterLength = 0;
private List<Object> _originalItems;

private void txtFilter_TextChanged(object sender, EventArgs e)
{
    if (txtFilter.Text.Length < _filterLength)
    {
        // reset DataSource if filter has had chars deleted
        // so we can re-filter on the original mainly for deletions)
        lbAvailable.DataSource = _originalItems;
    }

    _filterLength = txtFilter.Text.Length;

    // only filter if... there is a filter
    if (_filterLength > 0)
    {
        ApplyFilterToAvailable();
    }
}

private void ApplyFilterToAvailable()
{
    var myOtherList = lbAvailable.Items.Cast<Object>().ToList();
    lbAvailable.DataSource = null;

    var filtered = myOtherList.Where(x => x.ToString().Contains(txtFilter.Text)).ToList();

    lbAvailable.DataSource = filtered;
}

如果您需要查看更多周围的代码,可以在custom select control

找到该来源

你必须适应你正在使用的任何控件 - 可能是DataGrid?

答案 1 :(得分:0)

最好的方法是通过代码中的sql查询。 Example

sql喜欢:

select * from your_table where cardNo = show2.cardNO

您必须根据实际情况调整上面的代码。