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

Косяк с добавлением строки в бд

27.05.2019, 20:56. Показов 536. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Народ, не могу понять почему при добавлении строки не совпадающей со строкой в БД, ID контакта приравнивается к -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
private void button1_Click(object sender, EventArgs e)
        {
            string connectionString = @"Server=laptop-qkjqu4re\SQLEXPRESS01;Database=feedback;Trusted_Connection=True;";
 
            if (namebox.Text != "" && emailbox.Text != "" && telbox.Text != "" && comboBox1.Text != "" && messagebox.Text != "")
            {
                int ID_contact = -1;
 
                SqlConnection connection = new SqlConnection(connectionString);
                string number = telbox.Text;
                string SendCont = @"INSERT INTO contact(Name, Email, Phone_Number) VALUES ('" + namebox.Text + "', '" + emailbox.Text + "', '" +number+"');";
 
                string contact = @"SELECT ID_contact from contact WHERE Name = '" + namebox.Text + "' and Phone_number = '" + telbox.Text + "' and Email = '" + emailbox.Text + "';";
 
                SqlCommand cmd = new SqlCommand(contact, connection);
                SqlCommand cmdSend = new SqlCommand(SendCont, connection);
 
                connection.Open();
                MessageBox.Show(contact, "Info");
 
                SqlDataReader dataReader = cmd.ExecuteReader();
                //SqlDataReader dataReader1 = cmdSend.ExecuteReader();
 
                try
                {
                    
                    if(dataReader.HasRows)
                    {
                        while (dataReader.Read())
                        {
                            ID_contact = dataReader.GetInt32(0);
                            MessageBox.Show(ID_contact.ToString());
                        }
                        dataReader.Close();
 
                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
                finally
                {
                    connection.Close();
                }
 
                string SendMess = "INSERT INTO message (message, ID_theme, ID_contact) VALUES ('" + messagebox.Text + "','" + comboBox1.SelectedValue + "', '" + ID_contact + "');";
 
                try
                {
                    connection.Open();
                    MessageBox.Show(ID_contact.ToString());
                    dataReader.Read();
 
                    if (ID_contact < 0)
                    {
                        MessageBox.Show("flag");
                        cmdSend.ExecuteNonQuery();
                        ID_contact = dataReader.GetInt32(0);
                        MessageBox.Show(ID_contact.ToString());
                        dataReader.Close();
                    }
 
 
                    
                    MessageBox.Show("" + SendCont + ", " + SendMess + "", "Info");
 
                    SqlCommand command1 = new SqlCommand(SendMess, connection);
                    command1.ExecuteNonQuery();
 
                    connection.Close();
                    MessageBox.Show("Ваше сообщение отправлено,спасибо за отзыв ", "Обратная связь", MessageBoxButtons.OK);
                    Application.Exit();
 
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
            }
            else
            {
                MessageBox.Show("Заполнены не все поля, перепроверьте заполнение");
            }
        }
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
27.05.2019, 20:56
Ответы с готовыми решениями:

Косяк с переводом строки в численный массив
Приветствую всех. У меня возник вопрос вот в этой части var mas = Console.ReadLine().Split(' '); string numbs = mas; ...

Сопоставление строк с добавлением строки
Здравствуйте, прощу помочь в написании запроса или макроса, который бы сопоставлял строки между собой и если обнаружено не соответствие, то...

Выпадающий список с добавлением строки ВСЕ
в adp создаю набор строк SELECT kod_potr, Naimen_potr FROM _potr UNION ALL SELECT TOP 1 - 1, 'Все потребители' ORDER BY...

4
785 / 616 / 273
Регистрация: 04.08.2015
Сообщений: 1,713
28.05.2019, 11:14
Цитата Сообщение от XIRURG_ Посмотреть сообщение
Народ, не могу понять почему при добавлении строки не совпадающей со строкой в БД, ID контакта приравнивается к -1
Может поэтому?
Цитата Сообщение от XIRURG_ Посмотреть сообщение
int ID_contact = -1;
Сделайте поле ID_contact как identity, и вам не придется мучиться с простейшими операциями.
0
0 / 0 / 0
Регистрация: 24.12.2017
Сообщений: 80
28.05.2019, 11:28  [ТС]
В это как маркер, для того что бы определять наличие записи в базе, и в этом
C#
1
2
3
4
5
6
if (ID_contact < 0)
                    {
                        MessageBox.Show("flag");
                        cmdSend.ExecuteNonQuery();
                        ID_contact = dataReader.GetInt32(0);
                        MessageBox.Show(ID_contact.ToString());
и этом
C#
1
ID_contact = dataReader.GetInt32(0);
моменте идет переопределение этой переменной
0
785 / 616 / 273
Регистрация: 04.08.2015
Сообщений: 1,713
28.05.2019, 12:37
Цитата Сообщение от XIRURG_ Посмотреть сообщение
C#
1
string SendMess = "INSERT INTO message (message, ID_theme, ID_contact) VALUES ('" + messagebox.Text + "','" + comboBox1.SelectedValue + "', '" + ID_contact + "');";
А толку с ваших проверок, если запрос уже сформирован со значением -1?
0
2810 / 1679 / 885
Регистрация: 14.04.2015
Сообщений: 5,723
28.05.2019, 14:03
Igr_ok, там вроде сначала select идет, а потом insert сразу)
черт ногу сломит в таком написании) и почему им такое месиво кажется удобным, не пойму)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
28.05.2019, 14:03
Помогаю со студенческими работами здесь

Выравнивание строки добавлением пробелов справа
Здравствуйте уважаемые форумчане ! во вьюехе &lt;%= tovar.title %&gt; &lt;%= tovar.price %&gt; при просмотре выдается...

MSHFlexGrid проблема с добавлением первой строки
Уважаемые господа. Не могли бы вы подсказать решение. Столкнулся с такой проблемой: При добавлении новой 1 строки в mshflexGrid строчка...

Что-то напутал с добавлением строки в базу(
Здравствуйте, помогите пож. найти ошибку. Создал базу данных в панели управления open server. Добавляю в панели данные в базу ручками, все...

обработка строки с удалением и добавлением элементов
Приветствую! Не могу решить задачу на С с использованием динамических массивов: Дано целое число N(&gt;0) и строка S. Преобразовать...

Разделение строки с добавлением в список/массив строк
Есть такой код, где XcelApp - Microsoft.Office.Interop.Excel.Application, no_rep4 - список типа string. Задача - записать значения, которые...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло. Но на выплатах по больничным это. . .
1С: Контроль уникальности заводского номера
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере документа выдачи шин для спецтехники с табличной частью. Данные берутся из регистра сведений, по которому настроено. . .
Хочу заставить корпорации вкладываться в здоровье сотрудников: делаю мат модель здравосохранения
anaschu 22.03.2026
e7EYtONaj8Y Z4Tv2zpXVVo https:/ / github. com/ shumilovas/ med2. git
1С: Программный отбор элементов справочника по группе
Maks 22.03.2026
Установка программного отбора элементов справочника "Номенклатура" из модуля формы документа. В качестве фильтра для отбора справочника служит группа номенклатуры. Отбор по наименованию группы. . .
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс. Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
1С: Программный отбор элементов справочника по значению перечисления
Maks 21.03.2026
Установка программного отбора элементов справочника "Сотрудники" из модуля формы документа. В качестве фильтра для отбора служит значение перечислений. / / Событие "НачалоВыбора" реквизита на форме. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru