DataGridview始终为空虽然Datatable返回了我想要的值

时间:2016-02-11 09:41:22

标签: c# datagridview datatable

我不明白发生了什么:(我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();
                    }

请帮助..

0 个答案:

没有答案