使用从同一数据库填充的combobox过滤datagridview

时间:2016-08-05 06:21:51

标签: c# visual-studio datagridview combobox filtering

这就是我的代码的真实外观和执行方式。我一直在尝试根据我从数据库中填充的组合框来过滤数据,然后在datagridview上显示数据。因为我是编码的初学者,所以编写组合框填充代码真的很难。我真的在互联网上搜索,阅读大部分标题。完成所有选择后是否有任何方法可以执行此操作,并且可能在文本框中写入文本并且根据以下方式单击搜索按钮(我创建) 选择datagridview显示。

这是我的用户界面。我正在使用Visual Studio Professional 2013.请用非常基本的句子向我解释。我想学习逻辑,代码背后的结构。

MarqueePanel

2 个答案:

答案 0 :(得分:0)

如果您想根据您在文本框中输入的文字过滤网格视图,可以参考我的博客文章

  

http://dotnetsolutionsbyankit.blogspot.in/2013/04/filter-gridview-as-you-type-in-textbox.html

所以你会知道如何做到这一点。

如果您遇到任何问题,请在评论中告诉我。

答案 1 :(得分:0)

public static DataSet SQLGetData(string connectionString, string commandString)
{
    using (SqlConnection connection = new SqlConnection(connectionString))
    {
        DataSet DS = new DataSet();
        DataTable DT = new DataTable("Table1");
        try
        {
            connection.Open();
            SqlCommand command = new SqlCommand(commandString, connection);
            //command.CommandTimeout = 3000;
            SqlDataReader read = command.ExecuteReader();
            DS.Tables.Add(DT);
            DS.Load(read, LoadOption.PreserveChanges, DS.Tables[0]);

        }
        catch (SqlException e)
        {
            System.Windows.Forms.MessageBox.Show(e.Message);
        }
        finally
        {
            connection.Close();
        }
        return DS;
    }
}

private void SetFilter()
{
    string command = "SELECT * FROM Store";

    int count = 0;

    if (comboBox1.Text != "")
    {
        command = command + " WHERE GroupN = '" + comboBox1.Text + "'";
        count = count + 1; 
    }

    if (comboBox2.Text != "")
    {
        if (count == 0)
        {
            command = command + " WHERE Tech_Area = '" + comboBox2.Text + "'";                
        }
        else
        {
            command = command + " AND Tech_Area = '" + comboBox2.Text + "'";
        } 
        count = count + 1;                 
    }

    if (comboBox3.Text != "")
    {
        if (count == 0)
        {
            command = command + " WHERE LevelOf = '" + comboBox3.Text + "'";                
        }
        else
        {
            command = command + " AND LevelOf = '" + comboBox3.Text + "'";
        }
        count = count + 1;                 
    }
    // comboBox4, comboBox5, comboBox6 

    string connStr; //Connection string;

    DataSet DS = new DataSet();
    DS = SQLGetData(connStr, command);      
    DataGridView1.DataSource = DS.Tables[0];               
}