如何将所选记录显示到datagridview [英] How to display selected record to datagridview

查看:76
本文介绍了如何将所选记录显示到datagridview的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述


我只想将符合搜索条件的记录显示到datagridview.我已经尝试过grd1.CurrentCell = grd1.Rows [i] .Cells [0];但没有用.
请帮忙.
以下是我的代码:

//点击查询

Hi,
I want to display record that meet my search criteria to datagridview only. I have tried grd1.CurrentCell = grd1.Rows[i].Cells[0]; but does not worked.
Please help.
Following are my code:

//Click to query

public void button1_Click(object sender, EventArgs e)
        {
            string cstr;
            cstr = "Data Source=P1L3ITN024\\SQLEXPRESS; Integrated Security = True; ";
            SqlConnection con1 = new SqlConnection(cstr);
            con1.Open();
            SqlCommand com1 = new SqlCommand();
            com1.Connection = con1;
            com1.CommandType = CommandType.Text;
            com1.CommandText = "select * from dbo.spt_values";
            DataSet ds1 = new DataSet();
            SqlDataAdapter adp1 = new SqlDataAdapter(com1);
            adp1.Fill(ds1,"values");
            grd1.DataSource = ds1;
            grd1.DataMember = "values";
            con1.Close();  
        }

//点击搜索

//Click to Search

public void btnSearch_Click(object sender, EventArgs e)
      {
          grd1.ClearSelection();

          string search = txtSearch.Text;

          for (int i = 0; i < grd1.Rows.Count - 1; i++)
          {
              for (int j = 0; j < grd1.Columns.Count; j++)
              {
                 
                  if (grd1.Rows[i].Cells[0].Value.ToString().ToLower().StartsWith(search.ToLower()))
                  {
                      grd1.Rows[i].Selected = true;

                                           if (grd1.SelectedRows.Count > 0)
                      {

//What should i do here to get the selected record display into datagridview??

                                              }

                                      }

              }
          }

推荐答案

public void btnSearch_Click(object sender, EventArgs e)
{
  grd1.ClearSelection(); 
  string search = txtSearch.Text;
 
  for (int i = 0; i < grd1.Rows.Count - 1; i++)
  {
      for (int j = 0; j < grd1.Columns.Count; j++)
      {                 
        if(grd1.Rows[i].Cells[0].Value.ToString().ToLower().Contains(search.ToLower()))    
        {
          break; 
        }
        if(j == (grd1.Columns.Count-1))
        {
           grd1.Rows[i].Visible = false;
        }
      }
 
  }
}


感谢Mohd. Mukhtar!

我收到无法使与货币经理的头寸相关联的行不可见"的错误.
发生此特定错误的原因是,除非在运行时修改了绑定到数据源的行,否则我们不能对其进行修改,除非我们使用CurrencyManager对象通过添加grd1.CurrentCell = null来暂停对所有行的绑定.
Thanks Mohd. Mukhtar!

I get "Row associated with the currency manager''s position cannot be made invisible" error.
The reason for this particular error is that we cannot make modifications to a row at runtime which is bound to datasource, unless we suspened the binding on all rows using CurrencyManager object by adding grd1.CurrentCell = null.

public void btnSearch_Click(object sender, EventArgs e)
{
  grd1.ClearSelection();
  string search = txtSearch.Text;

  for (int i = 0; i < grd1.Rows.Count - 1; i++)
  {
      for (int j = 0; j < grd1.Columns.Count; j++)
      {
        if(grd1.Rows[i].Cells[0].Value.ToString().ToLower().Contains(search.ToLower()))
        {
          break;
        }
        if(j == (grd1.Columns.Count-1))
        {
           //add this
           grd1.CurrentCell = null;           
           grd1.Rows[i].Visible = false;
        }
      }

  }
}


这篇关于如何将所选记录显示到datagridview的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆