Форум программистов, компьютерный форум, киберфорум
C#: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
2 / 2 / 1
Регистрация: 24.11.2018
Сообщений: 130

Ошибка в заполнении БД

30.03.2019, 17:30. Показов 741. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Когда добавляю новую строку в таблицу
И пишу на месте Адрес Произвольный адрес (Пушкина 22)
Он выдает ошибку типа System.Data.SqlClient.SqlException: "String or binary data would be truncated.
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
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
 
namespace WindowsFormsApp3
{
    
    public partial class Form1 : Form
    {
        SqlConnection sqlConnection;
        public Form1()
        {
            InitializeComponent();
        }
 
        private async void button1_Click(object sender, EventArgs e)
        {
            if (label17.Visible)
                label17.Visible = false;
            if (!string.IsNullOrEmpty(textBox1.Text) && !string.IsNullOrEmpty(textBox2.Text) &&  // Если поля пустые или с пробелами выдать ошибку
                !string.IsNullOrEmpty(textBox3.Text) && !string.IsNullOrEmpty(textBox4.Text) &&
                !string.IsNullOrEmpty(textBox5.Text) && !string.IsNullOrEmpty(textBox6.Text) &&
                !string.IsNullOrEmpty(textBox7.Text) && !string.IsNullOrEmpty(textBox8.Text) &&
                !string.IsNullOrWhiteSpace(textBox1.Text) && !string.IsNullOrWhiteSpace(textBox2.Text) &&
                !string.IsNullOrWhiteSpace(textBox3.Text) && !string.IsNullOrWhiteSpace(textBox4.Text) &&
                !string.IsNullOrWhiteSpace(textBox5.Text) && !string.IsNullOrWhiteSpace(textBox6.Text) &&
                !string.IsNullOrWhiteSpace(textBox7.Text) && !string.IsNullOrWhiteSpace(textBox8.Text))
            {
 
                SqlCommand command = new SqlCommand   // Добавление элементов в БД
                ("INSERT INTO[Table] (Индекс,Наименование,Период,Цена,ФИО,Адрес,Стоимость,Номер)VALUES(@Индекс,@Наименование,@Период,@Цена,@ФИО,@Адрес,@Стоимость,@Номер)", sqlConnection);
                command.Parameters.AddWithValue("Индекс", textBox1.Text);                //Указываем откуда списывать информацию 
                command.Parameters.AddWithValue("Наименование", textBox2.Text);
                command.Parameters.AddWithValue("Период", textBox3.Text);
                command.Parameters.AddWithValue("Цена", textBox4.Text);
                command.Parameters.AddWithValue("ФИО", textBox5.Text);
                command.Parameters.AddWithValue("Адрес", textBox6.Text);
                command.Parameters.AddWithValue("Стоимость", textBox7.Text);
                command.Parameters.AddWithValue("Номер", textBox8.Text);
 
                await command.ExecuteNonQueryAsync(); // ОШИБКАА!!!!
            }
            else
            {
                label17.Visible = true;
                label17.Text = "Все поля должны быть заполнены";
            }
 
        }
 
        private void menuStrip1_ItemClicked(object sender, ToolStripItemClickedEventArgs e)
        {
 
        }
 
        private async void Form1_Load(object sender, EventArgs e)
        {
            string ConnectionSring = @"Data Source=(LocalDB)\MSSQLLocalDB;
                                       AttachDbFilename=C:\Users\mojuk\source\repos\WindowsFormsApp3\WindowsFormsApp3\Database3.mdf;
                                       Integrated Security=True"; // Подключаем SQL таблицу (указываем физическое положение БД)
            sqlConnection = new SqlConnection(ConnectionSring); // Создаем экземпляр 
            await sqlConnection.OpenAsync();                    // Открываем соединеие с БД 
            SqlDataReader SqlReder = null;                      // Получаем таблицу в ее привычном представлении 
            SqlCommand Command = new SqlCommand("SELECT * FROM[Table]", sqlConnection);     // Метод заполнения таблицы из нашей БД
            try                                                                            // Обработка ошибок 
            {
                SqlReder = await Command.ExecuteReaderAsync();  // Присываем результат метода Command 
                while (await SqlReder.ReadAsync())              // Проходимся по всему считанному из БД
                {
                    listBox1.Items.Add(Convert.ToString(SqlReder["Id"]) + " " +                  // Добавляем все в таблицу из БД
                                       Convert.ToString(SqlReder["Индекс"] + "  " +
                                       Convert.ToString(SqlReder["Наименование"] + "    " +
                                       Convert.ToString(SqlReder["Период"] + " " +
                                       Convert.ToString(SqlReder["Цена"]) + "  " +
                                       Convert.ToString(SqlReder["ФИО"]) + "    " +
                                       Convert.ToString(SqlReder["Адрес"]) + "   " +
                                       Convert.ToString(SqlReder["Стоимость"]) + " " +
                                       Convert.ToString(SqlReder["Номер"])))));
                                    
                                                
                }
            }catch (Exception Exception) // Несоответствие формату 
            {
                MessageBox.Show(Exception.Message.ToString(), Exception.Source.ToString(), MessageBoxButtons.OK, MessageBoxIcon.Error);  // Вывод окна 
                                                                                                                                         
            }
            finally
            {
                if (SqlReder != null) { SqlReder.Close(); } // Если считывать нечего Закрыть форму 
            }
        }
 
        private void exitToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (sqlConnection != null && sqlConnection.State != ConnectionState.Closed)  // Проверяем если форма не закрыта значит закрываем ее 
                                                                                         // Чтобы избежать утечки памяти 
                sqlConnection.Close();
        }
 
        private void Form1_FormClosing(object sender, FormClosingEventArgs e)
        {
            if (sqlConnection != null && sqlConnection.State != ConnectionState.Closed)  // Проыеряем если форма не закрыта значит закрываем ее 
                                                                                         // Чтобы избежать утечки памяти 
                sqlConnection.Close();
        }
 
        private async void обновитьToolStripMenuItem_Click(object sender, EventArgs e)
        {
            listBox1.Items.Clear();
            SqlDataReader SqlReder = null;                      // Получаем таблицу в ее привычном представлении 
            SqlCommand Command = new SqlCommand("SELECT * FROM[Table]", sqlConnection);     // Метод заполнения таблицы из нашей БД
            try                                                                            // Обработка ошибок 
            {
                SqlReder = await Command.ExecuteReaderAsync();  // Присываем результат метода Command 
                while (await SqlReder.ReadAsync())              // Проходимся по всему считанному из БД
                {
                    listBox1.Items.Add(Convert.ToString(SqlReder["Id"]) + " " +                  // Добавляем все в таблицу из БД
                                       Convert.ToString(SqlReder["Индекс"] + "  " +
                                       Convert.ToString(SqlReder["Наименование"] + "    " +
                                       Convert.ToString(SqlReder["Период"] + " " +
                                       Convert.ToString(SqlReder["Цена"]) + "  " +
                                       Convert.ToString(SqlReder["ФИО"]) + "    " +
                                       Convert.ToString(SqlReder["Адрес"]) + "   " +
                                       Convert.ToString(SqlReder["Стоимость"]) + " " +
                                       Convert.ToString(SqlReder["Номер"])))));
 
 
                }
            }
            catch (Exception Exception) // Несоответствие формату 
            {
                MessageBox.Show(Exception.Message.ToString(), Exception.Source.ToString(), MessageBoxButtons.OK, MessageBoxIcon.Error);  // Вывод окна 
 
            }
            finally
            {
                if (SqlReder != null) { SqlReder.Close(); } // Если считывать нечего Закрыть форму 
            }
        }
 
        private async void button2_Click(object sender, EventArgs e)
        {
            if (label18.Visible)
                label18.Visible = false;
            if (!string.IsNullOrEmpty(textBox16.Text) && !string.IsNullOrEmpty(textBox16.Text) &&  // Если поля пустые или с пробелами выдать ошибку
                !string.IsNullOrEmpty(textBox15.Text) && !string.IsNullOrEmpty(textBox15.Text) &&
                !string.IsNullOrEmpty(textBox13.Text) && !string.IsNullOrEmpty(textBox14.Text) &&
                !string.IsNullOrWhiteSpace(textBox12.Text) && !string.IsNullOrWhiteSpace(textBox12.Text) &&
                !string.IsNullOrWhiteSpace(textBox11.Text) && !string.IsNullOrWhiteSpace(textBox11.Text) &&
                !string.IsNullOrWhiteSpace(textBox10.Text) && !string.IsNullOrWhiteSpace(textBox10.Text) &&
                !string.IsNullOrWhiteSpace(textBox9.Text) && !string.IsNullOrWhiteSpace(textBox9.Text) &&
                !string.IsNullOrWhiteSpace(textBox8.Text) && !string.IsNullOrWhiteSpace(textBox8.Text))
            {
                SqlCommand command = new SqlCommand("UPDATE[Table] SET [Индекс]=@Индекс,[Наименование]=@Наименование,[Период]=@Период,[Цена]=@Цена,[ФИО]=@ФИО,[Адрес]=@Адрес,[Стоимость]=@Стоимость,[Номер]=@Номер WHERE [Id]=@Id",sqlConnection);
                command.Parameters.AddWithValue("Id", textBox17.Text);
                command.Parameters.AddWithValue("Индекс", textBox16.Text);
                command.Parameters.AddWithValue("Наименование", textBox15.Text);
                command.Parameters.AddWithValue("Период", textBox14.Text);
                command.Parameters.AddWithValue("Цена", textBox11.Text);
                command.Parameters.AddWithValue("ФИО", textBox12.Text);
                command.Parameters.AddWithValue("Адрес", textBox13.Text);
                command.Parameters.AddWithValue("Стоимость", textBox9.Text);
                command.Parameters.AddWithValue("Номер", textBox10.Text);
 
                await command.ExecuteNonQueryAsync();
            }
 
            else if(!string.IsNullOrWhiteSpace(textBox17.Text)&& !string.IsNullOrEmpty(textBox17.Text))
            {
                label18.Visible = true;
                label18.Text = "ID не найден ";
            }else
            {
                label18.Visible = true;
                label18.Text = "Все поля должны быть заполнены ";
            }
        }
    }
}
Спасибо большое за ответ !

Добавлено через 46 секунд
Ошибка в 48 строке
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
30.03.2019, 17:30
Ответы с готовыми решениями:

Ошибка в заполнении DataGrid
код UserContext.cs using System; using System.Collections.Generic; using System.Linq; using System.Text; using...

Ошибка в заполнении массива
TProc = procedure; TData = array of integer; const pozithionInPosledovatelnostVobrazah : TData = ( ( ( ...

Ошибка при заполнении
Почему выбивает ошибку "Индекс находился вне границ массива." ???? using System; using System.Collections.Generic; using...

3
 Аватар для XIST
1962 / 1072 / 148
Регистрация: 01.10.2009
Сообщений: 3,617
Записей в блоге: 1
30.03.2019, 18:13
Цитата Сообщение от Halacky Посмотреть сообщение
await command.ExecuteNonQueryAsync(); // ОШИБКАА!!!!
че за ОНННААААА!!!!
0
2 / 2 / 1
Регистрация: 24.11.2018
Сообщений: 130
31.03.2019, 05:00  [ТС]
Что прости ?
0
Эксперт .NET
 Аватар для Usaga
14314 / 9400 / 1355
Регистрация: 21.01.2016
Сообщений: 35,450
01.04.2019, 07:40
Цитата Сообщение от Halacky Посмотреть сообщение
Он выдает ошибку типа System.Data.SqlClient.SqlException: "String or binary data would be truncated.
Это значит, что одна из колонок в таблице имеет меньший размер (по количеству символов), чем строка, которую вы туда пытаетесь запихнуть. О чём вас СУБД и предупреждает: строка будет порезана до размера, который в колонку может влезть. А это потеря данных, о которой СУБД вам и сообщает.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
01.04.2019, 07:40
Помогаю со студенческими работами здесь

Ошибка в заполнении массива из
Я пишу программу для построения аппроксимирующей линии. точки задаются в блокноте. в этой части кода выходит ошибка( на скрине). Помогите с...

Ошибка при заполнении
Помогите определить где ошибка, так как какое число я не ввожу выводится в конце именно оно. Как мне кажется я ошибаюсь при заполнении...

Ошибка при заполнении массива
Есть код: Random r = new Random(); int k = r.Next(0, 10000); int kk = { k }; for (int i = 0; i < k; i++) { kk = i; //Вот...

Ошибка при заполнении формы
Есть база данных. Когда начинаю заполнять Форму-Абитуриент!не пойму почему выдает ошибку!подскажите или исправте) вылаживаю базу...

Ошибка при заполнении DataGridView
Всем привет! Вроде все просто заполнить базу в форме 2 тексбухстами из 3 формы! Ошибка! В чем проблема?


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru