Форум программистов, компьютерный форум, киберфорум
Наши страницы
C#: Базы данных, ADO.NET
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.50/6: Рейтинг темы: голосов - 6, средняя оценка - 4.50
vasukkk
0 / 0 / 0
Регистрация: 15.01.2015
Сообщений: 40
1

Редактирование таблиц БД через DataGridView

10.03.2016, 12:44. Просмотров 1156. Ответов 3
Метки нет (Все метки)

Всем привет, как сохранять изменения, сделанные в DataGridView, в таблицу БД? В частности интересует удаление отдельных записей.
Удаляю по индексу выбранной строки
C#
1
2
3
string Delet;
Delet = comboBoxInstr.Items[comboBoxInstr.SelectedIndex].ToString();
dataGridView1.Rows.RemoveAt(dataGridView1.CurrentRow.Index);
А вот так вывожу из таблицы БД в DataGridView
C#
1
2
3
4
5
6
7
8
9
10
11
 public void ShowData(string InstrTable)
         {
             SqlCommand cmd = new SqlCommand("Select * From dbo." + InstrTable + "", conn);
             DataTable dt = new DataTable();
             SqlDataAdapter da = new SqlDataAdapter(cmd);
             da.Fill(dt);
             dataGridView1.DataSource = dt;
 
 
             
         }
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.03.2016, 12:44
Ответы с готовыми решениями:

DataGridView редактирование таблиц через представление MSSQL
Есть 4 таблицы. /*Таблица сотрудников */ SELECT AS 'id_em' /*(PK, int, NOT NULL)*/ , AS...

Редактирование DataGridView через форму
Здравствуйте, я столкнулся с такой проблемой ,у меня имеется 2 таблицы Модули и Дисциплины ,...

Редактирование DataGridView через TextBox
Очень нуждаюсь в помощи. Из-за моих скудных знаний встала вся работа. В общем, есть 2 формы. На...

Редактирование DataGridview через textbox
Есть таблица в которую через текстбоксы нужно добавить данные. Как сделать, чтобы при добавление...

Редактирование БД MySql через DataGridView
На форме есть ДатаГрид и кнопка. Посредством следующего запроса я обновляю данные в ДатаГрид и в...

3
Даценд
Модератор
Эксперт .NET
4400 / 4082 / 2696
Регистрация: 20.04.2015
Сообщений: 7,407
10.03.2016, 13:03 2
vasukkk,
удаляйте данные не из контрола, предназначенного для их отображения, а непосредственно из БД.
Пример (только замените префикс OleDB на Sql):
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
private void btnDelete_Click(object sender, EventArgs e)
{
        OleDbConnection conn = new OleDbConnection(Properties.Settings.Default.connString);
        string commText = "delete from employers where ID = @id";
        OleDbCommand comm = new OleDbCommand(commText, conn);
        comm.Parameters.AddWithValue("@id", (int)dgvEmpl[0, dgvEmpl.CurrentRow.Index].Value); //получаем id выбранной записи и записываем значение в параметр @id
        conn.Open();
        try
        {
            comm.ExecuteNonQuery();
            MessageBox.Show("Запись удалена");
        }
        catch
        {
            MessageBox.Show("Удалить не удалось!");
        }
        conn.Close();
        FillEmployers(); //заполняем DGV обновленными данными
}
0
vasukkk
0 / 0 / 0
Регистрация: 15.01.2015
Сообщений: 40
10.03.2016, 15:29  [ТС] 3
а как реализовать это, если поля id нет, в таблице только одно поле, и id мне не нужно , возможен вариант без id? может есть какая-то стандартная индексация
0
kodv
1425 / 1098 / 344
Регистрация: 11.04.2011
Сообщений: 2,606
Завершенные тесты: 1
11.03.2016, 05:52 4
Цитата Сообщение от vasukkk Посмотреть сообщение
поля id нет, в таблице только одно поле, и id мне не нужно , возможен вариант без id?
Если id не нужно, значит имеющееся поле уникально. Сделайте его первичным ключом и исользуйте как id. Только в данном случае лучше будет не выполнять команды вручную, как вам советовали выше, а использовать для обновления DataAdapter.
C#
1
2
3
da.DeleteCommand = new SqlCommand("DELETE dbo." + InstrTable + " WHERE YourField = @YourField", conn);
da.DeleteCommand.Parameters.Add("@YourField", SqlDbType.NVarChar, 500, "YourField");
da.Update((DataTable)dataGridView1.DataSource);
Надеюсь, сами разберетесь, куда эти строки вставить. Так как вы не упомянули название вашего, то я решил называть YourField. Если бы оно было первичным ключом, то можно было бы воспользовать классом SqlCommandBuilder.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.03.2016, 05:52

Редактирование .mdb через datagridview
Всем привет! Возникла проблема при изменении полей в datagridview и последующего обновления базы...

Редактирование записей БД Access через DataGridview
Как можно поместить таблицу Datagridview в Access, а затем если пользователь захочет открыть ее...

Редактирование таблицы MySQL через DataGridView
Всем доброго времени суток! У меня есть БД MySQL, данные в одной из таблиц мне нужно добавлять,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru