Форум программистов, компьютерный форум, киберфорум
C#: Базы данных, ADO.NET
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
2 / 2 / 0
Регистрация: 01.10.2016
Сообщений: 239
1

Как не дублировать записи в БД?

18.03.2017, 14:30. Показов 765. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Всем привет, вопрос в том что в БД заносятся одинаковые строчки, из за цикла, но как мне записать все индексы массива в ячейки в БД
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
             for (int i = 0; i < questions.Count; i++)
              {;
                  for (int j = 0; j < questions[i].Answers.Count; j++)
                  {
                      if (ua[i][j] != ca[i][j])
                      {
                          cmd.CommandText = ("INSERT INTO Результат ([КодПользователя], [Вопрос], [Ответ], [Правильность ответа], [Дата/Время]) VALUES(@user, @quest, @answ, @correct, @date)");
                          string f1 = DateTime.Now.Hour.ToString() + ":" + DateTime.Now.Minute.ToString();
                          cmd.Parameters.AddWithValue("@user", 1);
                          cmd.Parameters.AddWithValue("@quest", questions[i].Text);
                          cmd.Parameters.AddWithValue("@answ", questions[i].Answers[j].Text);
                          cmd.Parameters.AddWithValue("@correct", questions[i].Answers[j]);
                          cmd.Parameters.AddWithValue("@date", f1);
                          cmd.ExecuteNonQuery();
                      }
                      else
                      {
                          cmd.CommandText = ("INSERT INTO Результат ([Пользователь],[Вопрос],[Ответ],[Правильность ответа],[Дата/Время]) VALUES(@user, @quest, @answ, @correct, @date)");
                          string f1 = DateTime.Now.Hour.ToString() + ":" + DateTime.Now.Minute.ToString();
                          cmd.Parameters.AddWithValue("@user", 1);
                          cmd.Parameters.AddWithValue("@quest", questions[i].Text);
                          cmd.Parameters.AddWithValue("@answ", questions[i].Answers[j].Text);
                          cmd.Parameters.AddWithValue("@correct", questions[i].Answers[j].IsCorrect);
                          cmd.Parameters.AddWithValue("@date", f1);
                          cmd.ExecuteNonQuery();
                      }
                  }
              }
В столбец вопросы должны занестись все вопросы из questions[0-14].Text
В столбец ответ должен заносится ответ один (а не 15 одиннаковых)
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.03.2017, 14:30
Ответы с готовыми решениями:

Как дублировать записи в таблице с изменением одного поля?
Есть таблица tab1 с полями id|name1|name2 Как дублировать все строки с name1=='123' (записать их...

Дублировать элементы десятичной записи, содержащие заданную цифру
Дан массив n элементов, адублировать элементы десятичной записи содержащую заданную цифру. Размер и...

При записи в один TextBox дублировать его содержимое в других
как сделать чтобы я например сделал копи пейст чего-то в один текстбокс и во всех текстбоксах сразу...

как дублировать wi-fi сеть
имеется вай фай сеть с вай фай роутером зиксел дсл. есть еще один вай фай роутер от билайн смарт...

4
Администратор
Эксперт .NET
17019 / 13372 / 5217
Регистрация: 17.03.2014
Сообщений: 27,344
Записей в блоге: 1
19.03.2017, 16:50 2
connection123, очевидно нужно оставить только внешний цикл
0
2 / 2 / 0
Регистрация: 01.10.2016
Сообщений: 239
19.03.2017, 18:21  [ТС] 3
OwenGlendower, тогда как быть с этой строкой if (ua[i][j] != ca[i][j]), где нужны два цикла
0
Администратор
Эксперт .NET
17019 / 13372 / 5217
Регистрация: 17.03.2014
Сообщений: 27,344
Записей в блоге: 1
19.03.2017, 19:59 4
connection123, насчет одного цикла я пожалуй загнул. Скорее тебе нужен код которыу сформирует один запрос для одного вопроса. Как это сделать предлагаю тебе подумать самостоятельно.
0
784 / 615 / 273
Регистрация: 04.08.2015
Сообщений: 1,707
20.03.2017, 12:13 5
В коде
Цитата Сообщение от connection123 Посмотреть сообщение
C#
1
2
3
4
5
6
7
8
9
10
11
if (ua[i][j] != ca[i][j]) 
{  
...
cmd.Parameters.AddWithValue("@correct", questions[i].Answers[j]);  
...
} else 
{ 
...
cmd.Parameters.AddWithValue("@correct", questions[i].Answers[j].IsCorrect);  
...
}
один и тот же параметр передается и как string и как bool. Что наводит на мысль, что часть кода в if вообще не нужна.
0
20.03.2017, 12:13
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.03.2017, 12:13
Помогаю со студенческими работами здесь

Как дублировать окна C++??
Народ надо продублировать одно окно несколько раз. Как мне это сделать. Надо сделать 10 одинаковых...

как дублировать ArryList?
прива! есть список стрингов, нужно проверять каждое слово списка, и то слово в котором попадется...

Как дублировать форму?
Возможно ли в VS 2012 дублировать форму? Т.е. есть какая-либо форма, в конструкторе задаются...

Как дублировать строку в mysql?
Есть таблица из 10 полей, первое id autoincrement key. Как создать новую запись. скажем из строки...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru