Как сохранить измененное значение сетки данных в таблицу данных? - PullRequest
0 голосов
/ 16 сентября 2010

У меня есть набор данных и 2 таблицы данных.

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();
    }

Надеюсь, это имеет смысл?

Ответы [ 2 ]

0 голосов
/ 16 сентября 2010

Прошу прощения, мой плохой .. я - голова бура.

Да датагрид привязан автоматически.Я только что понял, что я вызываю мой начальный метод dataset () - который вызывает мою базу данных, в моем методе datagrid_load.таким образом, каждый раз, когда я заполнял сетку данных, она на самом деле обновлялась из базы данных, а не из таблицы данных.

0 голосов
/ 16 сентября 2010

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...