Обновить таблицу базы данных с изменениями, внесенными в DataTable

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

SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["Con"].ConnectionString);
        SqlDataAdapter adapter = new SqlDataAdapter("SELECT * from tbl_Copy_Journal", con);
        DataSet Journals = new DataSet();
        adapter.Fill(Journals, "tbl_Copy_Journal");
        foreach (DataTable table in Journals.Tables)
        {
            for (int i = 0; i < Journals.Tables[0].Rows.Count; i++)
            {
                String action = Journals.Tables[0].Rows[i]["Action"].ToString();
                if (action == "reading dispensed")
                {

                    String action1= Journals.Tables[0].Rows[i+1]["Action"].ToString();
                    if (action1.StartsWith("Referred"))
                    {

                        String _Action = Journals.Tables[0].Rows[i]["Action"].ToString() + ", " + Journals.Tables[0].Rows[i + 1]["Action"].ToString();
                        Journals.Tables[0].Rows[i + 1].Delete();
                        Journals.Tables[0].Rows[i]["Action"] = _Action;
                    }
                    adapter.Update(Journals, "tbl_Copy_Journal");
                    Journals.AcceptChanges();
                }


            }
        }

Код возвращает Update требует действительной команды UpdateCommand при передаче коллекции DataRow с измененными строками. Есть ли способ удалить и обновить строки в datatable и исправить этот код. Любая помощь приветствуется.


person Ayoub Salhi    schedule 11.05.2018    source источник
comment
Просто понимание... Вы объявляете int index и int index1 и никогда их не используете.   -  person Ivan García Topete    schedule 11.05.2018
comment
спасибо, я обновил свой код, они были там только для отслеживания. Как вы думаете, я могу это решить?   -  person Ayoub Salhi    schedule 11.05.2018
comment
Ошибка на месте. Адаптерам требуется команда для каждой операции, которую вы можете выполнить: SELECT, INSERT, UPDATE и DELETE. Вы предоставили только команду SELECT. Проверьте это   -  person Crowcoder    schedule 11.05.2018
comment
Также проверьте этот ответ, adapter.UpdateCommand = new SqlCommandBuilder(adapter).GetUpdateCommand(); после adapter.Fill(Journals, "tbl_Copy_Journal")   -  person Ivan García Topete    schedule 11.05.2018


Ответы (1)


Вы исправляете это, делая то, что они просят. Укажите UpdateCommand.

person paparazzo    schedule 11.05.2018
comment
Даже когда я добавил команду обновления, запись не обновляется. - person Ayoub Salhi; 11.05.2018