我不明白发生了什么:(我4天前挣扎于这段代码......
我有2个返回两个数据表的方法,我将它们合并到一个表中,然后将BindingSource绑定到DT,然后将Datagridview绑定到Bindingsource
private void chld_LogByName_Load(object sender, EventArgs e)
{
dgvLogByName.DataSource = bs1;
PreviewKN(); PreviewRD();
dt1.Merge(dt2);
bs1.DataSource = dt1;
}
所以我可以在DGV中搜索:
private void txtLName_TextChanged(object sender, EventArgs e)
{
BindingSource bs = new BindingSource();
bs.DataSource = dgvLogByName.DataSource;
string columnName = dgvLogByName.Columns[5].Name.ToString();
bs.Filter = columnName + " like '%" + txtFName.Text + "%'";
dgvLogByName.DataSource = bs;
}
这项工作完美......
但是当我转向那个时,它会一直工作,直到它加载LocalDataTable,但它没有将能力绑定到DGV,所以DT有行,但DGV有0。
private void txtFName_TextChanged(object sender, EventArgs e)
{
try
{
if (dt1 != null && dt1.Rows.Count > 0)
{
DataRow[] dr = dt1.Select("F_Name LIKE '%"+ txtFName.Text +"%'");
DataTable localTable = new DataTable();
if (dr.Length > 0)
{
dgvLogByName.DataSource = null;
foreach (DataRow row in dr)
{
localTable.ImportRow(row);
}
dgvLogByName.DataSource = localTable;
dgvLogByName.Refresh();
}
请帮助..