實現該功能是用了DataView的篩選功能,DataView表示用於排序、篩選、搜索、編輯和導航的 DataTable 的可綁定數據的自定義視圖。 這里做了一個簡單易懂的Demo來講述該方法。
1.建兩張表

2.讀數據庫數據到dt顯示到dataGridView
3.用DataView選擇表dt中數據並返回表dtTemporary
4.運行效果
namespace UbdTest
{
public partial class Demo : Form
{
DataTable dt = new DataTable();//數據源
DataTable dtTemporary = new DataTable();//接收返回的所需數據
public Demo()
{
InitializeComponent();
}
private void Demo_Load(object sender, EventArgs e)
{
GetData();//調用獲取數據方法獲得數據
}
/// <summary>
/// 從數據庫獲取數據方法
/// </summary>
private void GetData()
{
//建立數據庫鏈接
string sqlconString = "Data Source=(local);Initial Catalog=Demo;User ID=sa;Password=sa";//創建連接字符串sqlconString
SqlConnection objcon = new SqlConnection(sqlconString);//創建sql數據連接對象objcon
objcon.Open();//打開數據庫鏈接
//創建一個DataAdapter對象,它表示數據庫和DataSet對象之間的鏈接
SqlDataAdapter dataAdapter = new SqlDataAdapter("Select*From 工作表", objcon);
//創建DataSet對象的一個實例,為整個DataSet提供一個名稱,然后才能開始加載數據
DataSet ds = new DataSet("Demo");//test為數據來源數據庫
//用SqlDataAdapter類提供的Fill方法向DataSet加載數據
dataAdapter.Fill(ds, "工作表");
dt = ds.Tables[0];
}
private void button1_Click(object sender, EventArgs e)
{
dataGridView1.DataSource = dt;
}
private void button2_Click(object sender, EventArgs e)
{
DataView dataview = dt.DefaultView;
dtTemporary = dataview.ToTable(true,"日期");
dataGridView2.DataSource = dtTemporary;
}
private void button3_Click(object sender, EventArgs e)
{
DataView dataview = dt.DefaultView;
dtTemporary = dataview.ToTable(true, "工作內容");
dataGridView3.DataSource = dtTemporary;
}
