【问题标题】:Search in datagrid using combo box使用组合框在数据网格中搜索
【发布时间】:2013-09-19 05:44:02
【问题描述】:

我必须使用 c# 从 datagrid 中的文本框中搜索数据 我的代码是

          private void button_Search_Click(object sender, EventArgs e)
    {
        sqlcon.Open();
        //DataSet ds15 = new DataSet();

  DataTable dt= new DataTable();                        

 SqlDataAdapter adpt = new SqlDataAdapter("Select ColumName from TableName where Field like '%{0}%'", comboBox_Search.Text); 
  adpt.Fill(dt);//datatable to catch the fields from the database
 dataGridView1.DataSource = dt;

得到错误参数异常未处理

我想通过组合框搜索

【问题讨论】:

  • columnname 和 Table 是您的 atm_status 的实际列?

标签: c# datagridview


【解决方案1】:

SqlDataAdapter 上没有与您的参数匹配的构造函数

SqlDataAdapter adpt = new SqlDataAdapter(string.Format("Select ColumName from TableName where Field like '%{0}%'", 
                 comboBox_Search.Text), sqlcon);

【讨论】:

    【解决方案2】:

    每次都查询数据库不是一个可取的方法。取而代之的是一个BindingSource 对象并填充一次源。然后使用BindingSource.Filter属性获取相关结果集,并将结果集绑定到网格中。

    查看thisthis 链接。

    另外,要解决您的问题,您可以这样尝试:

    ....
    sqlcon.Open();
    string query  = string.Format("Select ColumName from TableName where Field like '%{0}%'", comboBox_Search.Text);
    SqlCommand cm = new SqlCommand(query, sqlcon);
    SqlDataAdapter adpt = new SqlDataAdapter(cmd); 
    adpt.Fill(dt);//datatable to catch the fields from the database
    dataGridView1.DataSource = dt;
    ....
    

    【讨论】:

      【解决方案3】:

      SqlDataAdapter 如何知道从哪里获取结果?

      您没有正确初始化 SqlDataAdapter 的构造函数。第一个参数是完整的选择语句,第二个参数是您的连接字符串。

      SqlDataAdapter adpt = new SqlDataAdapter(string.Format("Select ColumName from atm_status where Table like '%{0}%'", comboBox_Search.Text), sqlcon);
      

      【讨论】:

        【解决方案4】:
        private void txt_Searchque_TextChanged(object sender, EventArgs e)
        {
            string connector_string = "datasource = localhost;port=3306;username=root;password=;";
            MySqlConnection sqlcon = new MySqlConnection(connector_string);
            sqlcon.Open();
            string query = string.Format("Select * from oep.quiz where que like '%{0}%'", txt_Searchque.Text);
            MySqlCommand cmd = new MySqlCommand(query, sqlcon);
            MySqlDataAdapter adpt = new MySqlDataAdapter(cmd);
            DataTable dt = new DataTable();
            adpt.Fill(dt);
            dataGridView1.DataSource = dt;
        }
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-12-17
          • 2011-06-06
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多