2017-11-11 138 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 + "*'"; 
    } 
} 
相關問題