2010-09-16 106 views
0

我有一個數據集和2個數據表。如何將更改後的datagrid值保存到數據表中?

Datatable1 =組合框源(這將顯示的選項的列表) Datatable2 =數據網格(這將顯示有關在組合框中的選項的數據) (基於組合框中選擇值填充數據網格)提交按鈕

當我在組合框中選擇一個項目並單擊提交時,它將加載datagrid中的相關記錄。如果我然後更改數據網格中的值,然後單擊提交按鈕,我剛剛更改的值,消失?

哪能讓這個改變的任何數據網格值修正確定年代,這樣即使我認爲不同的選擇,我可以隨時返回任何,一個保留任何更改的值嗎?

這裏是我的代碼:

//Load the data grid according to the ComboCAtegory selection 
    public void Grid_Load() 
    { 

     DataSet(); 
     var Result = from c in DataSet_Main.Tables[2].AsEnumerable() 
        where c.Field<string>("Test_Code").Equals(comboBox_CategorySelect.SelectedValue) 
        select c; 

     dataGridView_Main.DataSource = Result.AsDataView(); 

     dataGridView_Main.Columns["Test_Code"].Visible = false; 
     dataGridView_Main.Columns["ID"].Visible = false; 
     dataGridView_Main.Columns["Description"].Visible = false; 
     dataGridView_Main.Columns["Expected_Result"].Visible = false; 


    } 

    private void buttonSubmit_Click(object sender, EventArgs e) 
    { 
     Grid_Load(); 
    } 

    public void Fail() 
    { 

     DataTable dt = DataSet_Main.Tables[2]; 

     //dataGridView_Main.SelectedRows[0].Cells["Check"].Value = "Fail"; 
     dt.Rows[dataGridView_Main.SelectedRows[0].Index]["Check"] = "Fail"; 

    } 



    private void buttonFail_Click(object sender, EventArgs e) 
    { 
     Fail(); 
    } 

希望這是有道理的?

+0

你可能想添加一些標籤,你正在使用的可視框架。 Windows窗體,WPF,siverlight等 – Val 2010-09-16 02:09:21

回答

0

我認爲你的DataGrid已經綁定到數據表。您需要做的是將更改發送回數據源,以便將它們反映到綁定到相同數據源的第二個數據表中。爲此,在DataGrid上爲CellChanging事件編寫一個事件處理程序,並且可以在數據適配器上調用Update()方法(如果使用的話),以便將更改發送到數據源。然後,在同一事件處理程序中,通過刷新數據綁定更新組合框中的項目,以便組合框從第二個數據表中獲取最新值。

這樣,每當細胞在DataGrid改變其值,你可以檢查它是否是你想和更新基於在數據網格的變化組合框的相關細胞。

0

道歉我的壞..我是一個boof頭。

自動綁定數據網格。我剛剛意識到我正在調用我的datagrid_load方法中的初始dataset()方法 - 這是調用我的數據庫。因此每次我填充數據網格時,它實際上都是從數據庫刷新而不是數據表。

謝謝你的代理..

相關問題