Форум программистов, компьютерный форум, киберфорум
C#: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 04.11.2010
Сообщений: 5

Работа с DataGridView

05.11.2010, 12:04. Показов 1385. Ответов 0
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, создаю приложение для работы с БД(SQL), создал DataGridView привязал wizad'ом DataSet. Редактирование и создание записей происходит в отдельном окне. Возникли проблемы

1) Не могу организовать создание новой записи
2) При удалении удаляет из таблицы, из базы нет
3) Сохраняет не все изменения при редактировании записи


Код главной формы
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
namespace Task1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
 
        private void Form1_Load(object sender, EventArgs e)
        {
            // TODO: This line of code loads data into the 'northwindDataSet.Products' table. You can move, or remove it, as needed.
            this.productsTableAdapter.Fill(this.northwindDataSet.Products);
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            DataRowView newProd = (DataRowView)this.productsBindingSource.AddNew();
            this.dataGridView1.Rows.Add();
            Form2 frm = new Form2();
            frm.Edit_Product(productsBindingSource);
            frm.ShowDialog();
        }
 
        private void dataGridView1_CellContentDoubleClick(object sender, DataGridViewCellEventArgs e)
        {
            Form2 f1edit = new Form2();
            f1edit.Edit_Product(productsBindingSource);
            f1edit.ShowDialog();
        }
 
        private void button2_Click(object sender, EventArgs e)
        {
            productsTableAdapter.Update(this.northwindDataSet.Products);
        }
 
        private void button3_Click(object sender, EventArgs e)
        {
            int index = dataGridView1.CurrentRow.Index;
 
            if (index != -1)
            {
                try
                {
                    dataGridView1.Rows.RemoveAt(index);
                }
                catch
                {
                    MessageBox.Show("База ПУСТА!!!", "Сообщение о базе", MessageBoxButtons.OK, MessageBoxIcon.Hand);
                }
            }
        }
    }
}
код формы редактирования
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
namespace Task1
{
    public partial class Form2 : Form
    {
        BindingSource productsBindingSource;
 
        public Form2()
        {
            InitializeComponent();
        }
 
        public void Edit_Product(BindingSource productsBindingSource)
        {
            this.productsBindingSource = productsBindingSource;
            this.textBox1.DataBindings.Add("Text", productsBindingSource, "ProductName");
            this.checkBox1.DataBindings.Add("Checked", productsBindingSource, "Discontinued");
            this.textBox2.DataBindings.Add("Text", productsBindingSource,"SupplierID" );
            this.textBox3.DataBindings.Add("Text", productsBindingSource, "CategoryID");
            this.textBox4.DataBindings.Add("Text", productsBindingSource, "QuantityPerUnit");
            this.textBox5.DataBindings.Add("Text", productsBindingSource, "UnitPrice");
            this.textBox6.DataBindings.Add("Text", productsBindingSource, "UnitsInStock");
            this.textBox7.DataBindings.Add("Text", productsBindingSource, "UnitsOnOrder");
      
        }
 
 
        private void button1_Click_1(object sender, EventArgs e)
        {
            productsBindingSource.CancelEdit();
            Close();
        }
    }
}
Добавлено через 55 минут
С удалением и редактированием разобрался, помогите с созданием новой записи, как добавить новую строку?

Добавлено через 21 минуту
C#
1
2
3
4
5
6
7
8
9
10
11
 private void button1_Click(object sender, EventArgs e)
        {
            DataRowView newProd = (DataRowView)this.productsBindingSource.AddNew();
            DataRow newRow = northwindDataSet.Tables["Products"].NewRow();
            newRow["ProductName"] = "Наименование";
            newRow["Discontinued"] = false;
            northwindDataSet.Tables["Products"].Rows.Add(newRow);
            Form2 f1edit = new Form2();
            f1edit.Edit_Product(productsBindingSource);
            f1edit.ShowDialog();
        }
Кнопка добавления новой записи, при нажатии главное окно закрывается, если оставить только
C#
1
2
3
4
5
6
7
8
 private void button1_Click(object sender, EventArgs e)
        {
            DataRowView newProd = (DataRowView)this.productsBindingSource.AddNew();
            DataRow newRow = northwindDataSet.Tables["Products"].NewRow();
            newRow["ProductName"] = "Наименование";
            newRow["Discontinued"] = false;
            northwindDataSet.Tables["Products"].Rows.Add(newRow);
        }
то новая строка добавляется, не могу понять что не так делаю, подскажите
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
05.11.2010, 12:04
Ответы с готовыми решениями:

работа с DataGridView
Как в приложении с помощью DataGridView вбить таблицу чисел 20х4 и сохранить ее в массив ?

Работа с DataGridView
Здравствуйте. У меня такая ситуация. Я создал DataGridView статическим (т.е. зафиксировал число столбцов. В моем случае 6), чтобы заполнить...

Работа с DataGridView
Допустим есть класс User и элемент DataGridView. class User { public string FName { get; set; } public...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
05.11.2010, 12:04
Помогаю со студенческими работами здесь

Работа с Datagridview
Есть столбцы в Datagridview (см. рисунок). Как сделать чтобы построчно умножать значения столбцов kopii и kolichestvo , а после делать...

Работа с DataGridView
Здравствуйте! Разрабатываю приложение в среде VS, язык С#, встраиваемая база данных Firebird Embedded. Есть такие 2 вопроса: 1) ...

Работа с DataGridView
Даны два массива, я ввожу данные в первый массив, сумма первых двух ячеек, т.е. (0,0) и (0,1) должны отобразится во втором массиве в ячейке...

Работа с DataGridView
Имеется форма связанная с бд MS SQL. Бд присоединена через BindingSource. Нужно чтобы сохранялись изменения в бд после того как их вносят...

Работа с DataGridView
На форме есть компонент DataGridView, есть кнопка. по нажатию кнопки в компонент DataGridView добавляются некоторые сведения в...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru