Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
1 / 1 / 0
Регистрация: 09.09.2016
Сообщений: 99

Ошибка при выполнении запроса

13.01.2020, 11:45. Показов 1393. Ответов 21
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте,помогите пожалуйста! Запускаю программу мне выдает такие ошибки. Помогите мне ее открыть или что-то не правильно сделано
Миниатюры
Ошибка при выполнении запроса   Ошибка при выполнении запроса  
Вложения
Тип файла: zip HomeFin.zip (431.6 Кб, 1 просмотров)
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
13.01.2020, 11:45
Ответы с готовыми решениями:

Ошибка при выполнении запроса
Доброго времени суток, подскажите пожалуйста вылазит ошибка при нажатии на кнопку с данными private void...

Анимация при выполнении запроса
Здравствуйте друзья. Выполняю запрос к базе на выборку, хочу в течении запроса выводить анимацию типа "Работаю..." где то...

Ошибка при запуске и выполнении программы
В студии не вылетает, а так вылетает. Ссылка на проект ниже. https://yadi.sk/d/ALxs3_LpoVe4K

21
800 / 583 / 207
Регистрация: 21.02.2019
Сообщений: 2,095
13.01.2020, 11:55
.. вот это надо бы установить на локальном компьютере

The 2007 Office System Driver: Data Connectivity Components.

..но, возможно, и другой драйвер в зависимости от установленной версии MS Office
0
Модератор
Эксперт .NET
 Аватар для Yury Komar
4357 / 3427 / 512
Регистрация: 27.01.2014
Сообщений: 6,258
13.01.2020, 12:18
nastyahamutova, смените платформу вашего ПО с AnyCPU на x86... Скорее всего в этом проблема.
0
1 / 1 / 0
Регистрация: 09.09.2016
Сообщений: 99
13.01.2020, 13:13  [ТС]
Все запустилось, но когда, я начинаю редактировать в таблице данные, мне снова выдает ошибку
Миниатюры
Ошибка при выполнении запроса   Ошибка при выполнении запроса  
0
Модератор
Эксперт .NET
 Аватар для Yury Komar
4357 / 3427 / 512
Регистрация: 27.01.2014
Сообщений: 6,258
13.01.2020, 13:41
это не ошибка, а предупреждение и может быть проигнорировано
0
800 / 583 / 207
Регистрация: 21.02.2019
Сообщений: 2,095
13.01.2020, 13:54
.. там ошибка на первой картинке - синтаксис неверный в запросе ...
0
1 / 1 / 0
Регистрация: 09.09.2016
Сообщений: 99
13.01.2020, 14:14  [ТС]
а как мне быть подскажите?
0
800 / 583 / 207
Регистрация: 21.02.2019
Сообщений: 2,095
13.01.2020, 14:31
nastyahamutova,
..сначала проверьте, правильно ли расставлены плюсики, кавычки и прочие штучки в запросе SqlUpdateString, в частности в том месте, где слово "Код" ... а когда заработает, почитайте о том, как формировать запросы с помощью параметров ...
0
1 / 1 / 0
Регистрация: 09.09.2016
Сообщений: 99
13.01.2020, 14:31  [ТС]
Помогите пожалуйста доделать?
0
800 / 583 / 207
Регистрация: 21.02.2019
Сообщений: 2,095
13.01.2020, 15:04
..если у вас в базе данных поле "Код" - числовое (int), как я догадываюсь, то строка запроса на Update должна выглядеть, вероятно, так:

C#
1
string SQLUpdateString = "UPDATE Finance SET ФИО ='" + fio + "', Наименование ='" + naimen + "', доход =" + summa + ", Дата ='" + datta + "' WHERE Код = " + Convert.ToInt32(ID);
.. по поводу "дохода" - то же самое (только, decimal, наверное), я не знаю, как ваш Access воспринимает строки ...
0
1 / 1 / 0
Регистрация: 09.09.2016
Сообщений: 99
13.01.2020, 15:26  [ТС]
ошибку выводит также
0
1 / 1 / 0
Регистрация: 09.09.2016
Сообщений: 99
13.01.2020, 15:42  [ТС]
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
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Data.OleDb;
 
namespace HomeFin
{
    public partial class Form2 : Form
    {
        public string fio, naimen, summa, datta;
 
        private void button1_Click(object sender, EventArgs e)
        {
            fio = textBox1.Text.ToString();
            naimen = textBox2.Text.ToString();
            summa = textBox3.Text.ToString();
            datta = dateTimePicker1.Value.ToString();
 
            string SQLUpdateString = "UPDATE Finance SET ФИО ='" + fio + "', Наименование ='" + naimen + "', доход =" + summa + ", Дата ='" + datta + "' WHERE Код =" + ID + "";
 
            Form1 f1 = new Form1();
            OleDbCommand SQLCommand = new OleDbCommand();
            SQLCommand.CommandText = SQLUpdateString;
            SQLCommand.Connection = f1.database;
            int response = SQLCommand.ExecuteNonQuery();
            MessageBox.Show("Информация успешно изменена!", "Message", MessageBoxButtons.OK, MessageBoxIcon.Information);
            Close();
        }
 
        public string ID;
        public Form2()
        {
            InitializeComponent();
        }
 
        private void Form2_Load(object sender, EventArgs e)
        {
            textBox1.Text = fio;
            textBox2.Text = naimen;
            textBox3.Text = summa;
            dateTimePicker1.Value = Convert.ToDateTime(datta);
        }
    }
}
Помогите пожалуйста исправить ошибку
Миниатюры
Ошибка при выполнении запроса   Ошибка при выполнении запроса  
0
Эксперт .NET
 Аватар для Даценд
5878 / 4755 / 2939
Регистрация: 20.04.2015
Сообщений: 8,361
13.01.2020, 15:45
Цитата Сообщение от nastyahamutova Посмотреть сообщение
ошибку выводит также
Забудьте об идиотской строке запроса с кавычками, скобками и запятыми. Я имею в виду строку:
C#
1
string SQLUpdateString = "UPDATE Finance SET ФИО ='" + fio + "', Наименование ='" + naimen + "', доход =" + summa + ", Дата ='" + datta + "' WHERE Код = " + Convert.ToInt32(ID);
Почитайте уже о параметрах команды и сделайте по-человечески.
Как-то так:
C#
1
2
3
4
5
6
7
string SQLUpdateString = "UPDATE Finance SET ФИО = ?, Наименование = ?, доход = ?, Дата = ? WHERE Код = ?";
//...
SQLCommamd.Parameters.AddWithValue("@fio", fio);
SQLCommamd.Parameters.AddWithValue("@naimen", naimen);
SQLCommamd.Parameters.AddWithValue("@summa", summa);
SQLCommamd.Parameters.AddWithValue("@datta", datta);
SQLCommamd.Parameters.AddWithValue("@id", ID);
1
 Аватар для Kazbek17
1484 / 939 / 454
Регистрация: 06.02.2012
Сообщений: 2,868
13.01.2020, 15:48
nastyahamutova,
У вас в ID не числовое значение а точка ".". Каким образом вы получаете ID?
0
880 / 559 / 291
Регистрация: 21.11.2012
Сообщений: 1,554
13.01.2020, 15:48
если ID это действительно стринг, то вы упустили в sql одинарные кавычки здесь:

WHERE Код ='" + ID + "'"
0
Эксперт .NET
 Аватар для kolorotur
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
13.01.2020, 15:52
И, конечно же, если в поле Ф.И.О. ввести следующий текст:
Kaboom'; DELETE FROM Finance; --
То это будет очень хорошим жизненным уроком на тему использования параметризованных запросов вместо ручного создания строки запроса.
0
1 / 1 / 0
Регистрация: 09.09.2016
Сообщений: 99
13.01.2020, 17:00  [ТС]
Помогите пожалуйста кто-нибудь доделать, спасибо всем за ответы. Я каждого прочитала и поробывала. Я скинула файл с программой
Вложения
Тип файла: zip HomeFin.zip (431.6 Кб, 1 просмотров)
0
Модератор
Эксперт .NET
 Аватар для Yury Komar
4357 / 3427 / 512
Регистрация: 27.01.2014
Сообщений: 6,258
13.01.2020, 17:05
nastyahamutova, процитирую инфу про параметризацию запросов, думаю вам будет полезно это знать.

Про параметры в SQL запросе

Ранее для отправки запросов мы напрямую добавляли данные в выражение sql. Например, для отправки запроса на добавление данных в БД применялось следующее выражение:

C#
1
string sqlExpression = String.Format("INSERT INTO Users (Name, Age) VALUES ('{0}', {1})", name, age);
В данном случае предполагается, что значения для переменных name и age вводит пользователь.

Что если переменная name получит следующее значение:

C#
1
name = "Tom',10);INSERT INTO Users (Name, Age) VALUES('Hack";
В этом случае sql-выражение в итоге будет выглядеть следующим образом:

SQL
1
INSERT INTO Users (Name, Age) VALUES ('Tom',10);INSERT INTO Users (Name, Age) VALUES('Hack,{1})";
В итоге в базу данных будет добавлено два объекта. Это относительно безобидный вид подмены sql-выражения, но реальные возможности встраивания зловредных скриптов таковы, что можно вообще потерять данные в БД, если предоставить пользователям подобным образом добавлять данные.

Чтобы выйти из этой ситуации, в sql-командах используются параметры:

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
string connectionString = @"Data Source=.\SQLEXPRESS;Initial Catalog=usersdb;Integrated Security=True";
int age = 23;
string name = "T',10);INSERT INTO Users (Name, Age) VALUES('H";
string sqlExpression = "INSERT INTO Users (Name, Age) VALUES (@name, @age)";
using (SqlConnection connection = new SqlConnection(connectionString))
{
    connection.Open();
    SqlCommand command = new SqlCommand(sqlExpression, connection);
    // создаем параметр для имени
    SqlParameter nameParam = new SqlParameter("@name", name);
    // добавляем параметр к команде
    command.Parameters.Add(nameParam);
    // создаем параметр для возраста
    SqlParameter ageParam = new SqlParameter("@age", age);
    // добавляем параметр к команде
    command.Parameters.Add(ageParam);
 
    int number = command.ExecuteNonQuery();
    Console.WriteLine("Добавлено объектов: {0}", number); // 1
}
Для определения параметров используется объект SqlParameter. Этот объект имеет ряд конструкторов, но в данном случае передается название параметра и его значение. Причем название параметров начинается со знака @ и должно совпадать с тем названием, которое используется в sql-выражении (то есть в "INSERT INTO Users (Name, Age) VALUES (@name, @age)"). После определения параметра он добавляется в коллекцию параметров команды.

При выполнении команды на место параметров в sql-выражении подставляются их значения. При этом не важно, что параметр @name в значении определяет еще одну команду INSERT - все его значение будет добавлено в столбец name в таблице Users.
0
Эксперт .NET
 Аватар для Даценд
5878 / 4755 / 2939
Регистрация: 20.04.2015
Сообщений: 8,361
13.01.2020, 17:22
nastyahamutova,
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
private void button1_Click(object sender, EventArgs e)
{
    fio = textBox1.Text.ToString();
    naimen = textBox2.Text.ToString();
    summa = textBox3.Text.ToString();
    datta = dateTimePicker1.Value.ToString();
    string connectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=HomeFin.accdb;";
    using (OleDbConnection con = new OleDbConnection(connectionString))
    {
        OleDbCommand SQLCommand = new OleDbCommand();
        string SQLUpdateString = "UPDATE Finance SET ФИО = ?, Наименование = ?, доход = ?, Дата = ? WHERE Код = ?";
        SQLCommand.Parameters.AddWithValue("@fio", fio);
        SQLCommand.Parameters.AddWithValue("@naimen", naimen);
        SQLCommand.Parameters.AddWithValue("@summa", summa);
        SQLCommand.Parameters.AddWithValue("@datta", datta);
        SQLCommand.Parameters.AddWithValue("@id", ID);
        SQLCommand.CommandText = SQLUpdateString;
        SQLCommand.Connection = con;
        con.Open();
        int response = SQLCommand.ExecuteNonQuery();
        MessageBox.Show("Информация успешно изменена!", "Message", MessageBoxButtons.OK, MessageBoxIcon.Information);
    }
    Close();
}
0
1 / 1 / 0
Регистрация: 09.09.2016
Сообщений: 99
13.01.2020, 17:29  [ТС]
Спасибо большое, но в самой таблице не меняется, что отредактировали
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
13.01.2020, 17:29
Помогаю со студенческими работами здесь

Ошибка при написание sql запроса
Выдает ошибку:"Ошибочное или пропущенное зарезервированное слово или аргумент в инструкции SELECT или неверная пунктуация." ...

Ошибка 503 при получении запроса
Здравствуйте, начинаю только изучать C#. Задача, отправить данные с двух форм на сервер и принять ответ. Проблема при принятии запроса,...

Web API 2.Ошибка при использовании OData запроса с contains
На запрос api/products?$filter=contains(ProductCode,'GDN'),получаю ошибку: "The query specified in the URI is not valid. An unknown...

Ошибка при выполнении запроса
Всем привет! Использую php версии 5.6 Есть файл addBook.php <?php require 'modules/config.php'; if (isset($_POST)...

Ошибка при выполнении запроса
Пытаюсь выполнить запрос вот такого вида UPDATE table_name SET interval='60' WHERE user_id=221; и в ответ получаю ошибку #1064 - You...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
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