Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.82/11: Рейтинг темы: голосов - 11, средняя оценка - 4.82
25 / 24 / 13
Регистрация: 04.07.2012
Сообщений: 463

Перенос значений с второй формы в DataGridView подключенная к Acess

12.07.2012, 21:42. Показов 2053. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите пожалуйста!!!! К DataGridView подключил БД Acess и появилось счетчикDataSet, sContactsBindingSource, sContactsTableAdapter.
Задача:
1)по нажатию Buttin1 Form2 перенести данные из textBox Form2 в DataGridView Form1;
2)при выделенеии строчки DataGridView Form1 начать Buttin2 Form1 и перенести значения по textBox Form2 (4 столбца). Можно и при двойном нажатии на строчку DataGridView Form1.

Раньше все работало без БД. Вот какой кот был, а сейчас выдают ошибку, что в DataGridView нельзя программно добавить строчку

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
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
Form1
 
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
 
namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
 
        private void Form1_Load(object sender, EventArgs e)
        {
            // TODO: данная строка кода позволяет загрузить данные в таблицу "счетчикDataSet.SContacts". При необходимости она может быть перемещена или удалена.
            this.sContactsTableAdapter.Fill(this.счетчикDataSet.SContacts);
 
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            Form2 form = new Form2();
            this.Hide();
            form.Owner = this;
            form.Show();
        }
        public void insert_data(string[] str)
        {
            dataGridView1.Rows.Add(str[0], str[1], str[2], str[3]);
        }
 
        
        }
 
    }
 
Form2
 
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
 
namespace WindowsFormsApplication1
{
    public partial class Form2 : Form
    {
        public Form2()
        {
            InitializeComponent();
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            Form1 form = (Form1)this.Owner;
            string[] str = { textBox1.Text, textBox2.Text, textBox3.Text, textBox4.Text };
            form.insert_data(str);
            form.Show();
            this.Close();
 
        }
    }
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
12.07.2012, 21:42
Ответы с готовыми решениями:

DataGridView подключил БД Acess и выдает ошибку при заполнении со второй формы
Помогите пожалуйста!!!! К DataGridView подключил БД Acess и появилось счетчикDataSet, sContactsBindingSource, sContactsTableAdapter. ...

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

Как из одной формы обратиться к элементу dataGridView второй формы
Здравствуйте. Как обратиться из одной формы к элементу dataGridView из другой формы?!

8
25 / 24 / 13
Регистрация: 04.07.2012
Сообщений: 463
30.07.2012, 22:47  [ТС]
Сделал:
при двойном нажатии на стоку открывается форма2 с веденными значениями в textBox;
при нажатии ОК Form2 закрывается и ничего не появляется. но когда нажимаю, сохранить и останавливаю откладку и занова ее запускаю появляется введенная строка. Вообщем не могу сразу по закрывании Form2 обновить dataGridView.
Код Form1:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
private void button5_Click(object sender, EventArgs e)
        {
            Form3 F3 = new Form3();
            F3.ShowDialog();
            
        }
 
        void dataGridView1_CellDoubleClick(object sender, System.Windows.Forms.DataGridViewCellEventArgs e)
        {
            ShowForm3();
        }
        void ShowForm3()
        {
            Form3 form3 = new Form3();
            DataGridViewRow row = dataGridView1.SelectedRows[0];
            form3.dateTimePicker1.Value = (DateTime)row.Cells[0].Value;
            form3.textBox1.Text = row.Cells[1].Value.ToString();
            form3.textBox2.Text = row.Cells[2].Value.ToString();
            form3.textBox3.Text = row.Cells[3].Value.ToString();
            form3.ShowDialog();
        }
Код Form2:
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
namespace WindowsFormsApplication5
{
    public partial class Form3 : Form
    {
        
       
        DataRow currentRow;
        public Form3()
        {
            InitializeComponent();
        }
 
        private void dateTimePicker1_ValueChanged(object sender, EventArgs e)
        {
 
        }
 
        private void Form3_Load(object sender, EventArgs e)
        {
            // TODO: данная строка кода позволяет загрузить данные в таблицу "хранениеDataSet.HContacts". При необходимости она может быть перемещена или удалена.
            //this.hContactsTableAdapter.Fill(this.хранениеDataSet.HContacts);
                        
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            if (dateTimePicker1.Text != "" && textBox1.Text != "" && textBox2.Text != "" && textBox3.Text != "");
            {
                DataRow row = хранениеDataSet.HContacts.NewRow();
                row["Дата"] = dateTimePicker1.Text;
                row["Имя"] = textBox1.Text;
                row["Отчество"] = textBox2.Text;
                row["Фамилия"] = textBox3.Text;
                
                хранениеDataSet.HContacts.Rows.Add(row);
                
                textBox1.Text = "";
                textBox2.Text = "";
                textBox3.Text = "";
                
 
            }
                       
 
        }
0
 Аватар для Shambal
5 / 5 / 0
Регистрация: 02.09.2011
Сообщений: 18
30.07.2012, 23:18
По поводу, почему не удаётся добавлять что-то в DataGridView с привязкой к БД - вся проблема как раз в привязке. Редактируйте непосредственно DataTable, к которому привязан DataGridView.

По поводу значений. Советую, если вам нужно в текстбокс что-то переписать, использовать Value.ToString(), т.к. то, что вы видите в ячейке - это не всё, что там действительно находится. Я очень сильно в своё время намучался с этим приколом в формате DateTime.

По поводу обновления данных. DataSet и DataTable - это просто промежуточные звенья между БД и DataGridView. Для изменения БД нужен такой компонент, как DataAdapter. Почитайте о нём. Именно он обновляет содержимое БД согласно содержимому DataGridView.
1
25 / 24 / 13
Регистрация: 04.07.2012
Сообщений: 463
31.07.2012, 13:34  [ТС]
пробовал через Value.ToString() не получилось, если можешь помоги кодом
0
25 / 24 / 13
Регистрация: 04.07.2012
Сообщений: 463
31.07.2012, 18:57  [ТС]
Могли бы посмотреть. выдают ошибку"Таблица не имеет первичного ключа." при нажатии РЕДАКТИРОВАТЬ
C#
1
2
3
4
5
6
7
private void button4_Click(object sender, EventArgs e)
        {
            object Дата = dataGridView1.CurrentRow.Cells["датаDataGridViewTextBoxColumn"].Value;
            DataRow companyRow = хранениеDataSet.Tables["HContacts"].Rows.Find(Дата);
            Form2 form2 = new Form2(хранениеDataSet, companyRow);
            form2.ShowDialog();
        }
Пробовал поставить столбец id, без изменений
Весь код в архиве
Вложения
Тип файла: rar Прога.rar (149.8 Кб, 7 просмотров)
0
25 / 24 / 13
Регистрация: 04.07.2012
Сообщений: 463
31.07.2012, 22:30  [ТС]
ВОПРОС СЫМАЕТСЯ. Если поставить ключ в пером столбце Дата Access, то все заработает
0
 Аватар для Shambal
5 / 5 / 0
Регистрация: 02.09.2011
Сообщений: 18
31.07.2012, 22:37
Перенос данных с формы1 в форму2 сделал. Если будет много колонок, то делайте цикл.
Оговорю сразу, возможно вы не заметите. textBox1,2,3 поменял модификатор, чтоб можно было с ними взаимодействовать из формы1. Если хотите оставить модификатор старый - кидайте в массив и передавайте его.
Вложения
Тип файла: rar Прога.rar (155.5 Кб, 16 просмотров)
1
25 / 24 / 13
Регистрация: 04.07.2012
Сообщений: 463
31.07.2012, 22:56  [ТС]
Цитата Сообщение от Shambal Посмотреть сообщение
Оговорю сразу, возможно вы не заметите. textBox1,2,3 поменял модификатор, чтоб можно было с ними взаимодействовать из формы1. Если хотите оставить модификатор старый - кидайте в массив и передавайте его.
Модификаторы это остались с предыдущей разработки, а так я отключу взаимодействовать из формы1. На примере у меня 4 колонки, а так будет наверно 10. А так у меня будет TabControl с 4 вкладками и в каждой таблыца. спасибо за помощь и подсказку
0
25 / 24 / 13
Регистрация: 04.07.2012
Сообщений: 463
04.08.2012, 17:47  [ТС]
Подскажите пожалуйста!!! Начал дополнять свою ПО. При нажатии кнопки dataGridView для редактирования выдает ошибку во второй форме DataTable table = хранениеDataSet.Tables["HContacts"];// сылка на объект не указывает на экземпляр объекта
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
private void button1_Click(object sender, EventArgs e)
        {
            string датаDataGridViewTextBoxColumn = dateTimePicker1.Text.ToString();
            string имяDataGridViewTextBoxColumn = textBox1.Text.ToString();
            string отчествоDataGridViewTextBoxColumn = textBox2.Text.ToString();
            string фамилияDataGridViewTextBoxColumn = textBox3.Text.ToString();
 
            DataTable table = хранениеDataSet.Tables["HContacts"];// сылка на объект не указывает на экземпляр объекта
 
            if (currentRow == null)
            {
                currentRow = table.NewRow();
                currentRow["Дата"] = dateTimePicker1.Text.ToString();
                table.Rows.Add(currentRow);
            }
            currentRow.BeginEdit();
            currentRow["Дата"] = датаDataGridViewTextBoxColumn;
            currentRow["Имя"] = имяDataGridViewTextBoxColumn;
            currentRow["Отчество"] = отчествоDataGridViewTextBoxColumn;
            currentRow["Фамилия"] = фамилияDataGridViewTextBoxColumn;
            currentRow.EndEdit();
 
            Close();
 
        }
Добавлено через 21 час 37 минут
C#
1
DataTable table = хранениеDataSet.Tables["HContacts"];// сылка на объект не указывает на экземпляр объекта
Добавлено через 21 час 3 минуты
Подскажите пожалуйста, тема еще актуальна
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
04.08.2012, 17:47
Помогаю со студенческими работами здесь

Заполнить datagridview второй формы из первой
Есть 2 формы. На форме 1 таблица и кнопка, по нажатию которой должен заполняться второй datagridview. Когда оба грида на одной форме, то...

Передать данные из DataGridView первой формы в comboBox второй формы
Всем привет! У меня возник один очень странный вопрос, прошу строго не судить) Как передать данные по выбору строки DataGridView из...

Перенос значения переменных из второй формы в первую
Доброго времени суток! Появился такой вопрос: У меня есть 2 формы. В первой по нажатию кнопки вызывается вторая. Во второй выбираются и...

Обновить DataGridView первой формы из второй
Здравствуйте ув. форумчане! Помогите пожалуйста, так как опыта мало прошу сильно не судить! У меня есть две формы: На первой(Form1)...

Перенос значений из формы в отчет
Добрый вечер. Возникла такая проблема: Есть БД (прикладываю). В ней есть форма Автомобили. Как сделать так, чтобы при выборе какого...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru