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

Сохранение БД с DataGridView Access

11.03.2017, 22:24. Показов 2844. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите пожалуйста. Выбивает ошибку при сохранении изменений в таблице
!!!!!Вызвано исключение: "System.Data.OleDb.OleDbException" в System.Data.dll Дополнительные сведения: Ошибка синтаксиса в инструкции UPDATE.!!!!!
второй день борюсь..

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
using System;
using System.Data;
using System.Windows.Forms;
using System.Data.OleDb;
 
namespace Kur
{
    public partial class Redaguvania : Form
    {
        public string ConnectionString = "Provider =Microsoft.ACE.OLEDB.12.0;" +
           "Data Source = C:\\Users\\Desktop\\DB\\Kur.accdb";
        public Redaguvania()
        {
            InitializeComponent();
        }
 
        OleDbDataAdapter adap = null;
        DataSet ds = new DataSet();
        OleDbConnection connP = new OleDbConnection();
 
 
        private void Redaguvania_Load(object sender, EventArgs e)
        {
            connP.ConnectionString = "Provider =Microsoft.ACE.OLEDB.12.0;" +
           "Data Source = C:\\Users\\Desktop\\DB\\Kur.accdb";
            OleDbCommand command = new OleDbCommand("Select * from Автобус", connP);
            adap = new OleDbDataAdapter();
            adap.SelectCommand = command;
            OleDbCommandBuilder bulder = new OleDbCommandBuilder(adap);
            adap.InsertCommand = bulder.GetInsertCommand();
            adap.Fill(ds);
            dataGridView1.DataSource = ds.Tables[0];
            adap.Update(ds.Tables[0]);
            dataGridView1.Columns[0].Visible = false;
 
 
 
            command = new OleDbCommand("UPDATE Автобус SET Номер=@номер, Модель=@модель, Номерний знак=@номерний знак, Кількість місць=@кількість місць" + 
                "WHERE Номер=@oldномер", connP);
            command.Parameters.Add("@номер", OleDbType.Char, 0, "Номер");
            command.Parameters.Add("@модель", OleDbType.Char, 0, "Модель");
            command.Parameters.Add("@номерний знак", OleDbType.Char, 0, "Номерний знак");
            command.Parameters.Add("@кількість місць", OleDbType.Char, 0, "Кількість місць");
 
            OleDbParameter parameter = command.Parameters.Add("@oldномер", OleDbType.Char, 0, "Номер");
            parameter.SourceVersion = DataRowVersion.Original;
            adap.UpdateCommand = command;
        }
  
        private void btn_Save_Click_1(object sender, EventArgs e)
        {
           adap.Update(ds.Tables[0]) // !!!!!Вызвано исключение: "System.Data.OleDb.OleDbException" в System.Data.dll Дополнительные сведения: Ошибка синтаксиса в инструкции UPDATE.!!!!!
        }
 
        private void btn_Nazad_Click(object sender, EventArgs e)
        {
            Main objFrmMain = new Main();
            this.Hide();
            objFrmMain.Show();
        }
    }
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
11.03.2017, 22:24
Ответы с готовыми решениями:

Сохранение из dataGridView в БД ACCESS
всем привет!) как введенную информацию в dgw, сохранить в бд access? а потом оттуда же загрузить ее на форму?

Сохранение DataGridView в Access
Доброго времени суток))) Помогите, пожалуйста) В Windows Form создал datagridview, которую связал с Access. Необходимо сделать так: при...

Сохранение изменений из DataGridView в бд access
Добрый вечер, уважаемый форум. Я пишу программу WinForms, работающую с одним файлом accdb, в котором 3 таблицы. Я попал в ступор, когда...

2
549 / 480 / 315
Регистрация: 24.09.2013
Сообщений: 3,345
Записей в блоге: 1
12.03.2017, 00:44
Много раз использовал датагрид для связи с базой accdb
Все ратает при добавлении данных с датагрид в базу и при изменении в гриде сохраняются изменения и в базе
База MyWegNew1.accdb

private void Form1_Load(object sender, EventArgs e)
{
this.tab2TableAdapter.Fill(this.myWegNew 1DataSet11.Tab2); //Эта строка появляется автоматичесски при
установлении связи базы с гридом
}

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
Forms Code
{
       private void button1_Click(object sender, EventArgs e)  // Используемый мною код 
       {
         try
            {
            nrow = dataGridView1.RowCount;
             nrow -= 2;
         
       
           s1 = dataGridView1.Rows[nrow].Cells[2].Value.ToString();
              s2 = dataGridView1.Rows[nrow].Cells[3].Value.ToString();
              db1 = Double.Parse(s1);
              db2 = Double.Parse(s2);
              db = 8 * db1 + db2;
               dataGridView1.Rows[nrow].Cells[4].Value = db;
                db = (8 * db1 + db2) * 63/1000;
                 dataGridView1.Rows[nrow].Cells[5].Value = db;
                  dataGridView1.Rows[nrow].Cells[6].Value = Convert.ToInt32(1000*db/0.6);
 
            s1 = dataGridView1.Rows[nrow].Cells[7].Value.ToString();
             s2 = dataGridView1.Rows[nrow].Cells[8].Value.ToString();
              db1 = Double.Parse(s1);
               db2 = Double.Parse(s2);
                db = 8 * db1 + db2;
                 dataGridView1.Rows[nrow].Cells[9].Value = db;
                  db = (8 * db1 + db2) * 63 / 1000;
                  dataGridView1.Rows[nrow].Cells[10].Value = db;
                  dataGridView1.Rows[nrow].Cells[11].Value = Convert.ToInt32(1000 * db /0.6);
                  dataGridView1.Rows[nrow].Cells[12].Value = db1;   
             
               tab2TableAdapter.Update(this.myWegNew1DataSet11.Tab2);
       
            //     path = @"C:\Users\admin\Documents\MyWegNew1.accdb";
                  MessageBox.Show("Новая запись добавлена");
                   nrow++;
          }
          catch
          {
 
          } 
        }
}
2
0 / 0 / 0
Регистрация: 10.03.2017
Сообщений: 27
12.03.2017, 01:46  [ТС]
Спасибо Вам! Сохраню Ваш код
Проблему свою решил.
Суть была в том, что нужно было в базе Access сменить название столбца с "Номерний знак" на "Номерний_знак" и соответственно в коде тоже сделать замену. Весь сыр-бор был из за пробела(воспринимется только " _ " между словами).
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
12.03.2017, 01:46
Помогаю со студенческими работами здесь

Сохранение данных из DataGridView в Access
Доброго времени. Делаю лабораторную работу с использованием базы данных Access, которую потом через dataGridView необходимо загрузить в...

Сохранение данных из DataGridView в Access
Здравствуйте, пишу проект access+c# с помощью datagridview возникла проблема в сохранение данных из C# в Access, данные сохраняются...

DataGridView: сохранение в базе данных Access
Здравствуйте. Есть БД с 2мя таблицами на Access. Подключил к DataGridView. Как теперь через DGV записывать в БД? Спасибо!

Сохранение изменений сделанных программно в datagridview который связан с бд Access
В общем, у меня есть датагрид связанный через выбор источника данных, и он полностью заблокирован для пользователя, в программе меняется...

Вывод информации в DataGridView в зависимости от выбора в другом DataGridView - C# Access
В 1м DataGridView У меня предприятия, при выборе какого-то 1 предприятия, во 2й DataGridView появляются все записи с тем же ключом. Общий...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru