Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.06.2015, 17:23   #1
uuu
Пользователь
 
Регистрация: 07.05.2015
Сообщений: 15
По умолчанию Удаляет не ту строку из datagrid

Помогите кто-нибудь, удаляет почему-то не указанную строку из таблицы, а первую.
Вот метод удаления.
Код:
private void DeleteNoteAuthor()
        {
            using (
               var connection =
                   new SqlConnection(ConnectionWrapper.ConnectionString))
            {
                var command = new SqlCommand(
                    "DELETE FROM " + "Автор" + " WHERE " + SprAuthorGrid.Columns[0].HeaderText + "='" + 
                         SprAuthorGrid.Rows[SprAuthorGrid.SelectedCells[0].RowIndex].Cells[0].Value + "'",
                    connection); 
                command.Connection.Open();
                try
                { command.ExecuteNonQuery(); }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
            }
        }

Вызов метода удаления:
  private void deleteButton_Click(object sender, EventArgs e)
        {
            DialogResult rsl = MessageBox.Show("Вы действительно хотите удалить строку?", "Внимание!", 
                        MessageBoxButtons.YesNo, MessageBoxIcon.Question);
            if (rsl == DialogResult.Yes)
          {
                DeleteNoteAuthor();
                FillTableAuthor();
          }           
}

Метод FillTableAuthor
 private void FillTableAuthor()
        {
            string tableName = "dbo.Автор";
            try
            {
                var connection = new SqlConnection(ConnectionWrapper.ConnectionString);
                var dataAdapter = new SqlDataAdapter("select * from " + tableName, connection);
                var ds = new DataSet();
                dataAdapter.Fill(ds, "table");
                SprAuthorGrid.DataSource = ds.Tables["Table"].DefaultView;
            }

            catch (SqlException ex)
            {
                MessageBox.Show("Не удалось загрузить таблицу.", "Ошибка.");
            }
        }

Последний раз редактировалось Stilet; 16.07.2015 в 09:17.
uuu вне форума Ответить с цитированием
Старый 15.07.2015, 19:39   #2
uuu
Пользователь
 
Регистрация: 07.05.2015
Сообщений: 15
По умолчанию

Тема актуальна(((
uuu вне форума Ответить с цитированием
Старый 15.07.2015, 23:32   #3
WorldMaster
Старожил
 
Аватар для WorldMaster
 
Регистрация: 25.08.2011
Сообщений: 2,841
По умолчанию

Ну вот же вы берете SelectedCells нулевую строку.

Код:
var command = new SqlCommand(
                    "DELETE FROM " + "Автор" + " WHERE " + SprAuthorGrid.Columns[0].HeaderText + "='" + 
                           SprAuthorGrid.Rows[SprAuthorGrid.SelectedCells[0].RowIndex].Cells[0].Value + "'",
                    connection);
Либо у вас индексы перепутаны в ячейках.
Skype - wmaster_s E-Mail - WorldMasters@gmail.com
Работаем по 3 критериям - быстро, качественно, недорого. Заказчик выбирает любые два.

Последний раз редактировалось Stilet; 16.07.2015 в 09:17.
WorldMaster вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не удаляет из стэка Otar4ik Помощь студентам 1 16.01.2014 18:27
не удаляет файл zekk3r Общие вопросы Delphi 2 29.03.2013 18:37
Ограничение по сроку работы программы!!! $T@LKER Общие вопросы Delphi 24 11.05.2010 21:53
Как разбить сроку на переменные AxenicX Общие вопросы C/C++ 2 12.10.2009 22:50
Не все удаляет AgressiveBehavior Общие вопросы Delphi 2 29.09.2009 21:18