如何在C#中查询数据集并将结果返回到datagridview?

如何在C#中查询数据集并将结果返回到datagridview?,c#,sql,datagridview,dataset,C#,Sql,Datagridview,Dataset,我有datagridview,它显示它的数据源(库存系统的SQL数据库) 我想能够做的是过滤什么是显示在datagridview的基础上,如果有什么东西已经订购等 因此,我以如下方式填充datagridview: private void Form1_Load(object sender, EventArgs e) { bG_T1TableAdapter.Fill(bUZZGEEF_DBDataSet.BG_T1); ResizeCols();

我有datagridview,它显示它的数据源(库存系统的SQL数据库)

我想能够做的是过滤什么是显示在datagridview的基础上,如果有什么东西已经订购等

因此,我以如下方式填充datagridview:

  private void Form1_Load(object sender, EventArgs e)
    {
        bG_T1TableAdapter.Fill(bUZZGEEF_DBDataSet.BG_T1);
        ResizeCols();
    }
但我一辈子都搞不懂如何查询数据集

例如,我想单击一个按钮,该按钮将显示已选中ordered列的所有行


但一般来说,我想知道如何构建自己的查询。

您可以使用DataTableView行过滤器来查询datatable

   bG_T1TableAdapter.Fill(bUZZGEEF_DBDataSet.BG_T1);
   bUZZGEEF_DBDataSet.BG_T1.DefaultView.RowFilter = "ID < 10";

   myDataGridView.DataSource =bUZZGEEF_DBDataSet.BG_T1.DefaultView;
bG_T1TableAdapter.Fill(bUZZGEEF_DBDataSet.bG_T1);
bUZZGEEF_DBDataSet.BG_T1.DefaultView.RowFilter=“ID<10”;
myDataGridView.DataSource=bUZZGEEF_DBDataSet.BG_T1.DefaultView;

您可以使用DataTableView行筛选器查询datatable

   bG_T1TableAdapter.Fill(bUZZGEEF_DBDataSet.BG_T1);
   bUZZGEEF_DBDataSet.BG_T1.DefaultView.RowFilter = "ID < 10";

   myDataGridView.DataSource =bUZZGEEF_DBDataSet.BG_T1.DefaultView;
bG_T1TableAdapter.Fill(bUZZGEEF_DBDataSet.bG_T1);
bUZZGEEF_DBDataSet.BG_T1.DefaultView.RowFilter=“ID<10”;
myDataGridView.DataSource=bUZZGEEF_DBDataSet.BG_T1.DefaultView;

您可以将数据视图用于上述目的,并将过滤后的数据视图绑定到数据网格

bG_T1TableAdapter.Fill(bUZZGEEF_DBDataSet.BG_T1);

DataView dv = new DataView(bUZZGEEF_DBDataSet.BG_T1);
dv.RowFilter = "query"; // query example = "id = 10"

myDataGridView.DataSource =dv;

有关详细信息,您可以查看

您可以使用数据视图实现上述目的,并将过滤后的数据视图绑定到数据网格

bG_T1TableAdapter.Fill(bUZZGEEF_DBDataSet.BG_T1);

DataView dv = new DataView(bUZZGEEF_DBDataSet.BG_T1);
dv.RowFilter = "query"; // query example = "id = 10"

myDataGridView.DataSource =dv;

有关更多信息,您可以查看

我认为您需要类似于下面代码示例中所示的内容。基本上,开始在文本框中输入,GridView中的结果将根据输入文本框的内容进行过滤

using System.Data.SqlClient;

public class Form1
{
    DataSet ds = new DataSet;
    private void Form1_Load(System.Object sender, System.EventArgs e)
    {
        SqlConnection con = new SqlConnection("Data Source=name_of_your_sql_server; Integrated Security=true; Initial Catalog=name_of_your_database");
        con.Open();
        SqlDataAdapter da = new SqlDataAdapter("SELECT * FROM Categories", con);
        da.Fill(ds, "Cat");
        DataGridView1.DataSource = ds.Tables("Cat");
    }

    private void TextBox1_TextChanged(System.Object sender, System.EventArgs e)
    {
        ds.Tables("Cat").DefaultView.RowFilter = "[CategoryName] LIKE '*" + TextBox1.Text + "*'";
    }
}

我认为您需要类似于您在下面的代码示例中看到的内容。基本上,开始在文本框中输入,GridView中的结果将根据输入文本框的内容进行过滤

using System.Data.SqlClient;

public class Form1
{
    DataSet ds = new DataSet;
    private void Form1_Load(System.Object sender, System.EventArgs e)
    {
        SqlConnection con = new SqlConnection("Data Source=name_of_your_sql_server; Integrated Security=true; Initial Catalog=name_of_your_database");
        con.Open();
        SqlDataAdapter da = new SqlDataAdapter("SELECT * FROM Categories", con);
        da.Fill(ds, "Cat");
        DataGridView1.DataSource = ds.Tables("Cat");
    }

    private void TextBox1_TextChanged(System.Object sender, System.EventArgs e)
    {
        ds.Tables("Cat").DefaultView.RowFilter = "[CategoryName] LIKE '*" + TextBox1.Text + "*'";
    }
}

谢谢,我不确定它是否在我原始问题的范围内,但是当我更新返回行上的值时,它就会从视图中消失。有什么方法可以阻止这种情况发生吗?将行筛选器设置为空字符串将清除FilterHanks,我不确定它是否在原始问题的范围内,但当我更新返回行上的值时,它将从视图中消失。有什么方法可以阻止这种情况发生吗?将行筛选器设置为空字符串将清除筛选器