Форум программистов, компьютерный форум, киберфорум
Наши страницы
C#: Базы данных, ADO.NET
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
tuchin
2 / 2 / 1
Регистрация: 13.10.2014
Сообщений: 69
1

Ошибка при добавлении в базу данных, сплиттер и метка на нем

22.03.2017, 19:18. Просмотров 825. Ответов 8
Метки нет (Все метки)

Возникли следующие вопросы:
1. В программе
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
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.OleDb;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
 
namespace EStest
{
  public partial class FormMain : Form
  {
    public FormMain()
    {
      InitializeComponent();
    }
 
    private OleDbConnection cn;
    private DataSet ds = new DataSet();
    private OleDbDataAdapter daFactor;
    private OleDbDataAdapter daValue;
 
    private void DBcon(String DBname)
    {
      cn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" + Application.StartupPath +
                                "\\" + DBname);
      try
      {
        cn.Open();
      }
      catch
      {
        MessageBox.Show("Ошибка соединения с базой данных " + "\"" + DBname + "\"", "Ошибка подключения к базе",
                         MessageBoxButtons.OK, MessageBoxIcon.Error);
        Application.Exit();
      }
    }
 
    private void FillTables()
    {
      daFactor.Fill(ds.Tables["Factor"]);
      daValue.Fill(ds.Tables["Value"]);
    }
 
    private void FormMain_Load(object sender, EventArgs e)
    {
      DBcon("EsTest.mdb"); 
      daFactor = new OleDbDataAdapter("SELECT * FROM tblDicFactor", cn);
      ds.Tables.Add("Factor");
      daFactor.FillSchema(ds.Tables["Factor"], SchemaType.Mapped);
      daValue = new OleDbDataAdapter("SELECT * FROM tblDicValue", cn);
      ds.Tables.Add("Value");
      daValue.FillSchema(ds.Tables["Value"], SchemaType.Mapped);
      dgvFactor.DataSource = ds;
      dgvFactor.DataMember = ds.Tables["Factor"].TableName;
      dgvValue.DataSource = ds;
      dgvValue.DataMember = ds.Tables["Value"].TableName;
      FillTables();
      OleDbCommandBuilder cmdFactor = new OleDbCommandBuilder(daFactor);
      OleDbCommandBuilder cmdValue  = new OleDbCommandBuilder(daValue);
      ds.Dispose();
      cn.Close();
    }
 
    private void btnSave_Click(object sender, EventArgs e)
    {
      if (ds.HasChanges())
      {
        if (ds.Tables["Factor"].GetChanges() != null)
          daFactor.Update(ds.Tables["Factor"]);
        if (ds.Tables["Value"].GetChanges() != null)
          daValue.Update(ds.Tables["Value"]);
      }
    }
 
    private void btnRefresh_Click(object sender, EventArgs e)
    {
      ds.Clear();
      FillTables();
    }
 
    private void FormMain_FormClosing(object sender, FormClosingEventArgs e)
    {
      if (ds.HasChanges())
      {
        DialogResult result = MessageBox.Show("Сохранить?", "Данные были изменены!", MessageBoxButtons.YesNoCancel,
                                               MessageBoxIcon.Information);
        switch (result)
        {
          case System.Windows.Forms.DialogResult.Yes:
            if (ds.Tables["Factor"].GetChanges() != null)
              daFactor.Update(ds.Tables["Factor"]);
            if (ds.Tables["Value"].GetChanges() != null)
              daValue.Update(ds.Tables["Value"]);
            break;
          case System.Windows.Forms.DialogResult.No:
            Environment.Exit(1);
            break;
          case System.Windows.Forms.DialogResult.Cancel:
            e.Cancel = true;
            break;
        }
      } 
    }
  } //class
} // namespace
получаю ошибку в команде "INSERT INTO tblDicFactor (FactorName, NumFactor, Memo) VALUES (?, ?, ?)". Команды формируются CommandBuilder, в строке ввода вроде бы ничего необычного нет. Подскажите, пожалуйста, почему возникает ошибка.
2. На форме 2 датагрида, между ними сплиттер для того, чтобы можно было изменять размеры датагридов. На сплиттере я разместил метку с текстом "Все значения факторов". При перемещении сплиттера метка остается на своем месте и не перемещается вместе с сплиттером. Подскажите, пожалуйста, как сделать так, чтобы метка перемещалась вместе с сплиттером. Проект прикрепил.
0
Вложения
Тип файла: zip EsTest.zip (32.8 Кб, 2 просмотров)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.03.2017, 19:18
Ответы с готовыми решениями:

Ошибка при добавлении данных в базу
Здравствуйте) Интересует вопрос, по какой причине может возникнуть ошибка изображенная на скрине? Я...

Ошибка при добавлении данных в базу firebird
Добавляю из трёх листов данные в простенькую базу данных firebird, где всего три поля: ID, NAME и...

Кодировка при добавлении в базу данных
Создала локальную базу .mdf, подключена к приложению для того чтобы заносить записи в бд из текст...

Ошибка при добавлении записей в базу SQL
Есть процедура на серве InsertTypePayment Вот код ее ALTER PROCEDURE . @TypeName VARCHAR(50)...

Ошибка при добавлении данных
В программе я пытаюсь добавить записи в таблицу Manufacturer(рис.1) для этого в соответствующие...

8
Igr_ok
435 / 401 / 191
Регистрация: 04.08.2015
Сообщений: 1,098
22.03.2017, 23:32 2
Лучший ответ Сообщение было отмечено tuchin как решение

Решение

tuchin, зарезервированные слова MS Access должны заключаться в квадратные скобки(в вашем случае это Memo). OleDbCommandBuilder при формировании команд этого не делает. Так что или переименовать поле, или писать команды самому.
0
tuchin
2 / 2 / 1
Регистрация: 13.10.2014
Сообщений: 69
23.03.2017, 19:08  [ТС] 3
Опять возникает такая же ошибка при добавлении данных в таблицу tblTable, хотя и переименовал поля Memo. Пытался найти ошибку - не получилось. помогите, пожалуйста. Проект прикрепил
0
Вложения
Тип файла: zip EsTest.zip (31.4 Кб, 3 просмотров)
Igr_ok
435 / 401 / 191
Регистрация: 04.08.2015
Сообщений: 1,098
23.03.2017, 19:51 4
Лучший ответ Сообщение было отмечено tuchin как решение

Решение

Цитата Сообщение от tuchin Посмотреть сообщение
Опять возникает такая же ошибка
И по той же причине. Value-зарезервированное слово.
1
23.03.2017, 19:51
tuchin
2 / 2 / 1
Регистрация: 13.10.2014
Сообщений: 69
23.03.2017, 21:47  [ТС] 5
Спасибо большое! А где посмотреть список всех зарезервированных слов, которые нельзя использовать в ADO.NET при работе с базами данных? Чтобы я больше не задавал глупых вопросов.
0
Igr_ok
435 / 401 / 191
Регистрация: 04.08.2015
Сообщений: 1,098
23.03.2017, 22:32 6
Лучший ответ Сообщение было отмечено tuchin как решение

Решение

Цитата Сообщение от tuchin Посмотреть сообщение
А где посмотреть список всех зарезервированных слов, которые нельзя использовать в ADO.NET при работе с базами данных?
Список может отличаться в зависимости от СУБД. Вот для Access: https://support.microsoft.com/ru-ru/...ions-of-access
0
tuchin
2 / 2 / 1
Регистрация: 13.10.2014
Сообщений: 69
23.03.2017, 22:34  [ТС] 7
Спасибо!
0
tuchin
2 / 2 / 1
Регистрация: 13.10.2014
Сообщений: 69
24.03.2017, 13:47  [ТС] 8
Опять нужна помощь. Не получается правильно связать DataGridView dgvTableValue c dgvRule. При выборе строки в dgvTableValue информация в dgvRule не меняется. Подскажите, пожалуйста, как это исправить. Проект прикрепил.
0
Вложения
Тип файла: zip EsTest.zip (38.9 Кб, 4 просмотров)
tuchin
2 / 2 / 1
Регистрация: 13.10.2014
Сообщений: 69
25.03.2017, 12:28  [ТС] 9
Ошибку нашел. Надо так:
C#
1
2
3
      dgvRule.DataSource = bsRule;     
      bsRule.DataSource = bsTableValue;
      bsRule.DataMember = ds.Relations["RelTableValueRule"].RelationName;
Тогда все работает
0
25.03.2017, 12:28
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.03.2017, 12:28

Ошибка при добавлении в базу данных
<?php include ("settings/connect.php"); if (isset($_POST)) {$title = $_POST;} if...

Ошибка при добавлении данных в базу
нужно сделать асп.нет приложение с базой данной и нужно отправлять данные в нее, происходит ошибка...

Ошибка при добавлении в базу данных
Здравствуйте! Я раньше не работал с бд, это мое первое приложение, делал опираясь на урок... Вот...


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

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

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