我想只显示包含我在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#中实现这一目标
我想在数据网格中显示它
答案 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
您必须根据实际情况调整上面的代码。