Модераторы: Akina
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> DataGridView и С#, Сохранение изменений в БД 
:(
    Опции темы
jonkaspar2008
Дата 9.3.2012, 23:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 9.3.2012

Репутация: нет
Всего: нет



Вечер добрый! Суть проблемы такова - пишу программу на C# по взаимодействию с БД MS Access. Делаю это в первый раз, поэтому не знаю как решить проблему. Необходимо вывести значение БД в DataGridView и после изменения занести обратно в БД. Первую часть выполняет отлично, но при нажатии на клавишу "Сохранить изменения" выдает ошибку: 

 Необработанное исключение типа "System.Data.OleDb.OleDbException" произошло в System.Data.dll
 Дополнительные сведения: Ошибка синтаксиса в инструкции UPDATE.

 Текст программы:
Код

using System;
using System.Collections.Generic;
using System.ComponentModel;

using System.Data;
using System.Data.OleDb;
using System.Data.SqlClient;

using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;


namespace KasperovichTypography
{
    public partial class SuppliersShowAllFrm : Form
    {
        public SuppliersShowAllFrm()
        {
            InitializeComponent();
        }

        OleDbDataAdapter dataAdapter;

// Загрузка Формы;
        private void SuppliersFrm_Load(object sender, EventArgs e)
        {
            
            
            
            // Формируем запрос к базе данных –
            string sql = "SELECT * FROM Supplier";
            string connectionString;
 
            // DataTable сохраняет данные в памяти как таблицу
            DataTable dataTable = new DataTable();
     
            //Связывание с базой данных Access 2003 – *.mdb
            connectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" + @"Data Source=datatabels.mdb";
            OleDbConnection connection = new OleDbConnection(connectionString);
            connection.Open();
     
            OleDbCommand OleDbCommand = new OleDbCommand(sql, connection);
     
            dataAdapter = new OleDbDataAdapter(OleDbCommand);
     
            //Создаем построитель команд
            //Для адаптера становится доступной команда Update
            OleDbCommandBuilder commandBuilder = new OleDbCommandBuilder(dataAdapter);
     
            // Данные из адаптера поступают в DataTable
            dataAdapter.Fill(dataTable);
     
            // Связываем данные с элементом DataGridView
            dataGridView.DataSource = dataTable;
     
            // Очистка
            connection.Close();
            
        }


// Кнопка "Применить изменения";
        private void BtnSaveSuppliers_Click(object sender, EventArgs e)
        {
            try
            {
                dataAdapter.Update((DataTable)dataGridView.DataSource);
                MessageBox.Show("Изменения в базе данных выполнены!", "Уведомление о результатах", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            catch (Exception)
            {
                MessageBox.Show("Изменения в базе данных выполнить не удалось!", "Уведомление о результатах", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }


        }
    }
}


Помогите решить проблему! Спасибо.
PM MAIL   Вверх
Данкинг
Дата 9.3.2012, 23:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 1
Всего: 130



А что содержится в запросе на обновление?


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
jonkaspar2008
Дата 9.3.2012, 23:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 9.3.2012

Репутация: нет
Всего: нет



я изменяю данные в dataGridView и эти изменения записываются

Это сообщение отредактировал(а) jonkaspar2008 - 9.3.2012, 23:41
PM MAIL   Вверх
Данкинг
Дата 9.3.2012, 23:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 1
Всего: 130



Видимо, это в раздел по C# тогда.


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "MS Access"
Akina
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • Используйте теги [code=vb][/code] и [code=sql][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MS Access | Следующая тема »


 




[ Время генерации скрипта: 0.0627 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.