2010-09-16 4 views
0

У меня есть набор данных и 2 datatables.Как сохранить измененное значение datagrid в datatable?

Datatable1 = источник выпадающего (Это будет отображать список опций) Datatable2 = DataGrid (Это будет отображать данные, относящиеся к опции в выпадающем списке) кнопку Submit (заполнить DataGrid на основе комбинированного окна выбранного значения)

Когда я выбираю элемент в поле со списком и нажимаю submit, он загружает соответствующие записи в datagrid. Если i затем изменить значение в datagrid и нажать кнопку submit, значение, которое я только что изменил, исчезнет?

Как я могу сделать так, чтобы любые измененные значения datagrid изменяли значение datable, так что, даже если я просматриваю разные параметры, я всегда могу вернуть их, сохранить любое из измененных значений?

Вот мой код:

//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

ответ

0

Я думаю, что ваш DataGrid уже привязан к таблице данных. Что вам нужно сделать, это отправить изменения обратно в источник данных, чтобы они отражались во второй таблице данных, привязанной к одному и тому же источнику данных. Для этого напишите обработчик событий для события CellChanging в DataGrid и в том, что вы можете вызвать метод Update() для вашего адаптера данных (если вы используете его, то есть) для отправки изменений в источник данных. Затем в том же обработчике событий обновите элементы в поле со списком, обновив привязку данных, чтобы поле со списком получало последние значения из второй таблицы данных.

Таким образом, всякий раз, когда ячейка меняет свое значение в DataGrid, вы можете проверить, действительно ли это соответствующая ячейка, и обновить поле со списком на основе изменений в сетке данных.

0

Извините, что я плохой .. Я голова копыта.

Tha datagrid IS связан автоматически. Я только что понял, что я вызываю свой первоначальный метод dataatet(), который вызывает мою базу данных, в моем методе datagrid_load. таким образом, каждый раз, когда я заполнял datagrid, он фактически обновлялся из базы данных, а не для данных.

Thankyou your repy tho ..

Смежные вопросы