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

При добавлении в "textbox" "/" - ошибка

09.02.2022, 20:53. Показов 1533. Ответов 9

Студворк — интернет-сервис помощи студентам
Привет, создал хранимую процедуру:
SQL
1
2
3
4
5
6
DELIMITER //  
CREATE PROCEDURE insert_stock (IN _name VARCHAR(250),IN _description VARCHAR(500), IN _conditions VARCHAR(500), IN _price DOUBLE, IN _photo VARCHAR(250))  
BEGIN  
INSERT INTO employee VALUES(_name, _description, _conditions, _price, _photo);
    SELECT * FROM stock;
END //
в phpmyadmin.

Подключил базу и пытаюсь добавить данные в базу, но при попытке добавить в базу текст, который начинается с "/" - ошибка: "Входная строка имела неверный формат".

Прикладываю код выполнения хранимой процедуры и скриншоты с ошибкой.

Код:

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
        private void button14_Click(object sender, EventArgs e)
        {
            con.Connect();
            MySqlParameter[] parameters = new MySqlParameter[5];
            parameters[0] = new MySqlParameter("_name", SqlDbType.VarChar);
            parameters[0].Value = textBox1.Text;
            parameters[1] = new MySqlParameter("_description", SqlDbType.VarChar);
            parameters[1].Value = textBox4.Text;
            parameters[2] = new MySqlParameter("_conditions", SqlDbType.VarChar);
            parameters[2].Value = textBox5.Text;
            parameters[3] = new MySqlParameter("_price", SqlDbType.Int);
            parameters[3].Value = textBox2.Text;
            parameters[4] = new MySqlParameter("_photo", SqlDbType.Text);
            parameters[4].Value = Convert.ToString(textBox3.Text);
            command.Connection = con.cn;
            command.CommandType = CommandType.StoredProcedure;
            command.CommandText = "insert_stock";
            command.Parameters.AddRange(parameters);
            con.cn.Open();
            if (command.ExecuteNonQuery() == 1)
            {
                MessageBox.Show("Ошибка");
            }
            else
            {
                MessageBox.Show("Комментарий пользователя: " + commentDataGridView.CurrentRow.Cells[1].Value + " опубликован");
                command = new MySqlCommand("SELECT `id_stock`, `name`, `description`, `conditions`, `price`, `photo` FROM `stock` WHERE 1", con.cn);
                command.ExecuteNonQuery();
                dt = new DataTable();
                da = new MySqlDataAdapter(command);
                da.Fill(dt);
                commentDataGridView.DataSource = dt.DefaultView;
                commentDataGridView.Columns[0].Visible = false;
                commentDataGridView.Columns[1].HeaderText = "Имя";
                commentDataGridView.Columns[1].Width = 100;
                commentDataGridView.Columns[2].HeaderText = "Описание";
                commentDataGridView.Columns[2].Width = 200;
                commentDataGridView.Columns[3].HeaderText = "Условия";
                commentDataGridView.Columns[3].Width = 300;
                commentDataGridView.Columns[4].HeaderText = "Цена";
                commentDataGridView.Columns[4].Width = 50;
                commentDataGridView.Columns[5].HeaderText = "Фото";
                commentDataGridView.Columns[5].Width = 105;
                commentDataGridView.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.AllCells;
                commentDataGridView.DefaultCellStyle.WrapMode = DataGridViewTriState.True;
            }
            con.cn.Close();
        }
Скриншоты:


P.s Рабочие поля сверху добавлял через саму базу.
Миниатюры
При добавлении в "textbox" "/" - ошибка   При добавлении в "textbox" "/" - ошибка  
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
09.02.2022, 20:53
Ответы с готовыми решениями:

Ошибка при добавлении текста в TextBox
Ошибку выдаёт вот тут: textBox2.AppendText(s); Вот весь код программы: #region Подключаемые пространства имён ...

Пропадает menuStrip при добавлении свойства на textBox
Доброго времени суток, форумчане! Столкнулся с такой проблемой, что при добавлении на textBox (и на button) свойства PreviewKeyDown,...

При динамическом добавлении строк в TextBox виснет форма
Здравствуйте! У меня такая проблема, пишу программу для пингования, все пингует, результаты выводит в textbox. Но тут есть загвоздка,...

9
0 / 0 / 0
Регистрация: 05.03.2020
Сообщений: 27
09.02.2022, 21:51  [ТС]
Не работают вообще все символы!
0
1497 / 1238 / 245
Регистрация: 04.04.2011
Сообщений: 4,363
10.02.2022, 01:07
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
using (MySqlConnection conn = new MySqlConnection(<Строка подключения>))
{ 
    conn.Open();
    MySqlCommand cmd = new MySqlCommand("call insert_stock(@p1, @p2, @p3, @p4, @p5)", conn);
    cmd.AddWithValue("@p1", textBox1.Text);
    cmd.AddWithValue("@p2", textBox2.Text);
    cmd.AddWithValue("@p3", textBox3.Text);
    cmd.AddWithValue("@p4", double.Parse(textBox4.Text));
    cmd.AddWithValue("@p5", textBox5.Text);
    try
    { 
         command.ExecuteNonQuery();
    }
    catch
    {
         MessageBox.Show("Ошибка");
    }
}
Добавлено через 10 минут
SQL
1
2
3
4
5
6
7
8
9
10
11
12
DROP PROCEDURE IF EXISTS insert_stock;
CREATE PROCEDURE insert_stock (
    IN _name VARCHAR(250)
    ,IN _description VARCHAR(500)
    , IN _conditions VARCHAR(500)
    , IN _price DOUBLE
    , IN _photo VARCHAR(250)
)  
BEGIN  
INSERT INTO employee  (name, description, conditions, price, photo)  # имена колонок таблицы
    VALUES(_name, _description, _conditions, _price, _photo);
END
Добавлено через 7 минут
ЗЫ. Перед началом кода подготовки к запросу не забудьте сделать проверку (валидацию) данных, вдруг юзер ввел вместо числа "ла-ла-ла" или еще чего некорректное. Если ошибка, то покажите где и какая, при этом запрос, естественно, не должен быть послан серверу.

Добавлено через 4 минуты
ЗЫЫ. У Вас хранимка служит для добавления одной записи в таблицу. Зачем после этого Вы возвращаете всю таблицу ?
Если оставить так, как есть, то после вставки 10 записей подряд Вам будет 10 раз возвращены все записи таблицы.

После добавления записи или группы записей в цикле просто перечитывайте датасет грида обычным селектом.
0
0 / 0 / 0
Регистрация: 05.03.2020
Сообщений: 27
10.02.2022, 01:31  [ТС]
Ошибка CS1061 "MySqlCommand" не содержит определения "AddWithValue", и не удалось найти доступный метод расширения "AddWithValue", принимающий тип "MySqlCommand" в качестве первого аргумента (возможно, пропущена директива using или ссылка на сборку). test1 C:\Users\alex\source\repos\test1\test1\s tock.cs 122 Активные
0
1497 / 1238 / 245
Регистрация: 04.04.2011
Сообщений: 4,363
10.02.2022, 02:59
Тогда оставьте Ваш c# код заполнения параметров, но поправьте
C#
1
parameters[3].Value = double.Parse(textBox2.Text);
Ну и хранимку переделайте как выше написано.
0
0 / 0 / 0
Регистрация: 05.03.2020
Сообщений: 27
10.02.2022, 10:27  [ТС]
Ошибка
Миниатюры
При добавлении в "textbox" "/" - ошибка  
0
1497 / 1238 / 245
Регистрация: 04.04.2011
Сообщений: 4,363
10.02.2022, 14:33
ra11ne, У Вас колонки таблицы точно так называются, как перечислены в запросе ?
Покажите структуру таблицы stock
0
0 / 0 / 0
Регистрация: 05.03.2020
Сообщений: 27
10.02.2022, 14:40  [ТС]
Вот
Миниатюры
При добавлении в "textbox" "/" - ошибка  
0
0 / 0 / 0
Регистрация: 05.03.2020
Сообщений: 27
10.02.2022, 16:01  [ТС]
вроде всё правильно

Добавлено через 34 секунды
MsGuns, вроде всё правильно
0
1497 / 1238 / 245
Регистрация: 04.04.2011
Сообщений: 4,363
10.02.2022, 19:09
ra11ne, На всякий случай в инструкции INSERT возьмите все названия полей в левые апострофы как принято в Мускуле. Вероятно, название одного из полей совпадает с зарезервированном в SQL словом. Скорее всего 'name' или 'decription'

Добавлено через 2 часа 6 минут
Цитата Сообщение от ra11ne Посмотреть сообщение
Ошибка CS1061 "MySqlCommand" не содержит определения "AddWithValue", и не удалось найти доступный метод расширения "AddWithValue", принимающий тип "MySqlCommand" в качестве первого аргумента (возможно, пропущена директива using или ссылка на сборку). test1 C:\Users\alex\source\repos\test1\test1\s tock.cs 122 Активные
cmd.Parameters.AddWithValue...
Можно было догадаться
Когда писал код, просто пропустил, а дальше копипаста
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
10.02.2022, 19:09
Помогаю со студенческими работами здесь

При каждом добавлении слова из textbox в richtextbox предыдущие должны сохраниться
У меня есть форма 1 на которой есть button,richtextbox,textbox. Я ввожу слово в textbox при нажатии кнопки оно отправляется на...

Ошибка при добавлении элементов в список при чтении файла
Есть файл с информацией о всех профилях, который читается reader-ом. Записи в нем выглядят вот так: ID: 1 Name: xxx Mode1_Slozhn: ...

Ошибка при добавлении данных в БД при нажатии на кнопку
Пишу приложение для БД access на C#. Существует форма &quot;добавить&quot; на которой расположены text.box, checkbox и combobox , необходимо чтобы...

Ошибка при добавлении
Добрый день всем, знаю что подобных тем уже много, но тем немении, при добавлении новой записи возникает ошибка такого рода: (Скрин) База...

Ошибка при добавлении
Добрый день! есть база в IBExpert c процедурой: begin insert into...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru