Форум программистов, компьютерный форум, киберфорум
Наши страницы
C#: Базы данных, ADO.NET
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/10: Рейтинг темы: голосов - 10, средняя оценка - 4.80
IgorDaiko
2 / 2 / 2
Регистрация: 02.01.2012
Сообщений: 112
1

Как записать данные в БД

31.05.2012, 14:05. Просмотров 1998. Ответов 16
Метки нет (Все метки)

Здраствуйте, у меня возникла проблема не могли бы вы помочь.
C#
1
2
3
4
5
6
7
8
9
SqlCommand comandStr = "Insert into login(log, pass, money) values('"+Login.Text+','+ Password.Text +',' + Money.Text+ "')";
                    myCommand = new SqlCommand(comandStr, myConection);
                    myCommand.Parameters.AddWithValue(Login.Text, true);
                    myCommand.Parameters.AddWithValue(Password.Text, true);
                    myCommand.Parameters.AddWithValue(Money.Text, true);
 
                    //Вот тут выдает ошибку:
Число столбцов в инструкции INSERT превышает число значений, указанных в предложении VALUES. Число значений в предложении VALUES должно соответствовать числу столбцов, указанному в инструкции INSERT.
                    myCommand.ExecuteNonQuery();
как правильно записать запрос?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.05.2012, 14:05
Ответы с готовыми решениями:

Как записать данные в Excel?
Подскажите какой код програмы чтобы експортировать данные Excel Я много искал на форумах но там...

Как записать нужные данные из БД в переменную?
Уважаемые формучане, прошу Вашей помощи. Мне нужно в Excel, в разные ячейки записать данные из БД...

Sqlite - Как записать данные в файл?
Как правильно записать данные в файл в формате .html ? А так же если кто шарит, объясните как...

Как записать данные в таблицу Access
Доброго времени суток уважаемые, мне нужна ваша помощь. Имеется БД, суть в том что мне надо через...

Как пробежаться по БД и записать данные в массив?
В программировании не профи, по этому такой вопрос: Есть БД, где первый столбец это idQueue,...

16
andrew_w2k
326 / 326 / 90
Регистрация: 04.03.2010
Сообщений: 648
31.05.2012, 14:22 2
C#
1
2
3
4
5
6
SqlCommand cmd = myConection.CreateCommand();
cmd.CommandText ="Insert into login(log, pass, money) values('?', '?', '?')";
cmd.Parameters.AddWithValue("log", Login.Text);
cmd.Parameters.AddWithValue("pass", Password.Text);
cmd.Parameters.AddWithValue("money", Money.Text);
cmd.ExecuteNonQuery();
0
IgorDaiko
2 / 2 / 2
Регистрация: 02.01.2012
Сообщений: 112
31.05.2012, 14:36  [ТС] 3
не помогло(((
мне кажеться у меня ошибка вот в этой части
C#
1
SqlCommand comandStr = "Insert into login(log, pass, money) values('"+Login.Text+','+ Password.Text +',' + Money.Text+ "')";
но я не знаю как правильно записать
0
andrew_w2k
326 / 326 / 90
Регистрация: 04.03.2010
Сообщений: 648
31.05.2012, 15:19 4
уберите всё лишнее и оставьте только параметризированный запрос, как я написал выше
0
31.05.2012, 15:19
IgorDaiko
2 / 2 / 2
Регистрация: 02.01.2012
Сообщений: 112
31.05.2012, 15:21  [ТС] 5
тоесть там оставить знаки вопросов?
0
andrew_w2k
326 / 326 / 90
Регистрация: 04.03.2010
Сообщений: 648
31.05.2012, 15:28 6
Цитата Сообщение от IgorDaiko Посмотреть сообщение
тоесть там оставить знаки вопросов?
именно так, советую Вам ещё почитать про параметризированные запросы
0
IgorDaiko
2 / 2 / 2
Регистрация: 02.01.2012
Сообщений: 112
31.05.2012, 16:17  [ТС] 7
Так у меня во все ячейки БД знаки вопросов записываються
0
ksk
614 / 482 / 43
Регистрация: 05.07.2010
Сообщений: 1,589
03.06.2012, 08:53 8
Проверь свойство Collation базы данных
Должно быть Cyrillic General CI AS
0
XIST
1145 / 855 / 118
Регистрация: 01.10.2009
Сообщений: 2,569
Записей в блоге: 1
04.06.2012, 17:22 9
И в строке подключения кодировка Cirrylic
0
turbanoff
Эксперт Java
4029 / 3764 / 743
Регистрация: 18.05.2010
Сообщений: 9,330
Записей в блоге: 11
Завершенные тесты: 1
06.06.2012, 12:23 10
Цитата Сообщение от andrew_w2k Посмотреть сообщение
C#
1
cmd.CommandText ="Insert into login(log, pass, money) values('?', '?', '?')";
Что-то помоему вы не то написали.
Зачем вопросы в кавычках? Разве субд не посчитает их как строки?
И ADO.NET провайдер для MSSQL не поддерживает параметры в виде знака вопроса. Нужно использовать именованные параметры, с префиксом @.
1
andrew_w2k
326 / 326 / 90
Регистрация: 04.03.2010
Сообщений: 648
06.06.2012, 12:24 11
пардон, действительно, кавычки надо убрать
Не знал про MSSQL
0
raokean
4 / 4 / 2
Регистрация: 05.07.2012
Сообщений: 87
25.06.2013, 21:46 12
Цитата Сообщение от IgorDaiko Посмотреть сообщение
SqlCommand comandStr = "Insert into login(log, pass, money) values('"+Login.Text+','+ Password.Text +',' + Money.Text+ "')";
может я ошибаюсь но по моему
SqlCommand comandStr = "Insert into login(log, pass, money) values( @"+Login.Text+", @"+ Password.Text +", @" + Money.Text+ " )";
0
turbanoff
Эксперт Java
4029 / 3764 / 743
Регистрация: 18.05.2010
Сообщений: 9,330
Записей в блоге: 11
Завершенные тесты: 1
25.06.2013, 22:06 13
Цитата Сообщение от raokean Посмотреть сообщение
может я ошибаюсь но по моему
Ошибаетесь.
0
raokean
4 / 4 / 2
Регистрация: 05.07.2012
Сообщений: 87
26.06.2013, 11:58 14
Цитата Сообщение от turbanoff Посмотреть сообщение
Ошибаетесь.
вчем ошибка? INSERT INTO samle_table (sample_column) VALUE (@sample_column_value)
0
turbanoff
Эксперт Java
4029 / 3764 / 743
Регистрация: 18.05.2010
Сообщений: 9,330
Записей в блоге: 11
Завершенные тесты: 1
26.06.2013, 12:20 15
@raokean,
Так пользователь будет вводить в TextBox-ы значение полей, а не имена параметров. И запрос превратится вот в это
SQL
1
INSERT INTO login(log, pass, money) VALUES( @Василий, @Пупкин, @10,5 )
Кроме того, даже если он будет вводить имя параметра - сами параметры нужно еще где-то добавлять.
0
raokean
4 / 4 / 2
Регистрация: 05.07.2012
Сообщений: 87
28.06.2013, 09:26 16
Попробуй так:
C#
1
2
3
4
5
SqlCommand comandStr = "Insert into login(log, pass, money) values(@login, @password, @money)";
                    myCommand = new SqlCommand(comandStr, myConection);
                    myCommand.Parameters.AddWithValue("@login", Login.Text);
                    myCommand.Parameters.AddWithValue("@password", Password.Text);
                    myCommand.Parameters.AddWithValue("@money", Money.Text);
Добавлено через 1 минуту
Цитата Сообщение от turbanoff Посмотреть сообщение
@raokean,
Так пользователь будет вводить в TextBox-ы значение полей, а не имена параметров. И запрос превратится вот в это
SQL
1
INSERT INTO login(log, pass, money) VALUES( @Василий, @Пупкин, @10,5 )
Кроме того, даже если он будет вводить имя параметра - сами параметры нужно еще где-то добавлять.
Вы правы!
Спасибо за вашее замечание!
0
raokean
4 / 4 / 2
Регистрация: 05.07.2012
Сообщений: 87
29.06.2013, 16:18 17
Привет turbanoff!
Подскажи как сделать кодировку utf8 или какой нибудь все ядный.
Добавление в конец строки подключиние указание кодировки charset=cp1251 не помогает.
0
29.06.2013, 16:18
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.06.2013, 16:18

Как записать данные из DataGridView в БД MySql?
Помогите пожалуйста, есть такой код, но никакого результата нет, ошибок тоже нет. или он работает...

как записать данные из таблицы SQL в массив?
Всем привет! У меня есть обычный массив и SQL таблица с данными. Мне надо найти повторяющиеся...

Как записать данные из XML файла в ListView
Привет. у меня проблема. не могу записать(прочитать и в нужное место записать) данные из XML файла...


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

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru