dataGridView1的值是从数据库查询出来的,现在我想实现输入一个id(id在dataGridView1存在的)然后就可以查到id对应的某行某列的值不需要关联数据库。。

解决方案 »

  1.   

    dataGridView里面的数据,你是通过‘绑定数据源’的方法,还是‘行列添加’的方法。
    若为:绑定方法,比如DataTable,你检索的数据已经存在缓存中了,只需对Datatable进行查询即可,然后重新绑定若为:添加方法,首先,保存dataGridView里面的数据到缓存,然后清空;检索匹配的id,然后重新添加数据大dataGridView中即可。
      

  2.   

    完整解决:        private void textBox1_TextChanged(object sender, EventArgs e)
            {
                try
                {
                    string id = textBox1.Text;                bool bFind = false;
                    foreach(DataGridViewRow dgr in dataGridView1.Rows)
                    {
                        foreach(DataGridViewCell cell in dgr.Cells)
                        {
                            string val = cell.Value.ToString();
                            if(val==id)   //找到单元格
                            {
                                dataGridView1.CurrentCell = cell;   //设置当前单元格
                                cell.Selected = true;                         //选中单元格
                                bFind = true;
                                break;
                            }
                        }                    if (bFind)
                            break;
                    }
                }
                catch(Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
            }
      

  3.   

    LS正解。。如果要只显示查询出来的那列
    private void textBox1_TextChanged(object sender, EventArgs e)
      {
        dataRow[] drList = dt.Select("id='"+id+"'");
    bindDgv(drList);
       }
       /// <summary>
            /// 绑定未质控的患者信息
            /// </summary>
            /// <param name="drList"></param>
            private void bindDgv(DataRow[] drList)
            {
                Dgv.Rows.Clear();
                foreach (DataRow row in drList)
                {
                    DataGridView dgv = new DataGridView();
                    int index = DgvUnQC.Rows.Add(dgv);
                    Dgv.Rows[index].Cells["a"].Value = row["a"].ToString();
                    Dgv.Rows[index].Cells["b"].Value = row["b"].ToString();
                    Dgv.Rows[index].Cells["c"].Value = row["c"].ToString();
    }
    }
      

  4.   

    恩·再现有的Dataset 或者datatable里面再进行二次查询·
      

  5.   

    sdl2005lyx的方法不错,连table 都不要用