2017-11-11 172 views
0

我有datagridview显示它的数据源(库存系统的SQL数据库)。如何查询C#中的数据集并将结果返回给datagridview?

我想做什么就能做的是过滤什么是基于在DataGridView显示,如果事情已经下令等等

所以我填补像这样的datagridview:

private void Form1_Load(object sender, EventArgs e) 
    { 
     bG_T1TableAdapter.Fill(bUZZGEEF_DBDataSet.BG_T1); 
     ResizeCols(); 
    } 

但我不能为我的生活弄清楚如何查询数据集。

例如,我想点击一个按钮,这将显示已检查有序列的所有行。

但总的来说,我想知道如何建立自己的查询。

回答

2

您可以使用数据视图用于上述目的并绑定筛选的DataView到DataGrid。

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; 

欲了解更多信息,你可以看看here

1

可以使用DataTableView的RowFilter来查询一个DataTable

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

    myDataGridView.DataSource =bUZZGEEF_DBDataSet.BG_T1.DefaultView; 

https://msdn.microsoft.com/en-us/library/system.data.dataview.rowfilter(v=vs.110).aspx

+0

谢谢,我不知道它是否在我原来的问题范围内,但当我更新返回的行上的值,然后从视图中消失。有没有办法阻止这种情况发生? –

+0

将行过滤器设置为空字符串将清除过滤器 –

0

我想你想要的东西,像你下面的代码样本中看到。基本上,开始在TextBox中输入,并且相对于输入到TextBox中的内容,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 + "*'"; 
    } 
} 
相关问题