0 / 0 / 0
Регистрация: 07.06.2013
Сообщений: 21
|
|||||||||||
1 | |||||||||||
Ругается на "cmd.ExecuteNonQuery();"09.06.2013, 15:30. Показов 4114. Ответов 35
Метки нет (Все метки)
Здравствуйте!
Прошу помощь, так как сам уже просто отчаялся! есть хранимая процедура:
А так же есть кнопка button1 Так вот как правильно реализовать по нажатию кнопки передачу параметров в хранимую процедуру (@tk nvarchar(50), @treck nvarchar(50)) где значение tk нужно взять из textBox2, а значения treck из dataGirdView1 Пример моего кода (тут при выполнении ругается на "cmd.ExecuteNonQuery();" :
Спасибо!
0
|
09.06.2013, 15:30 | |
Ответы с готовыми решениями:
35
При попытке записать в новую строку из textbox ругается на inscmd.ExecuteNonQuery Программа ругается на cmd.ExecuteNonQuery() Ругается на ExecuteNonQuery(); cmd.ExecuteNonQuery(); Ошибка в cmd.ExecuteNonQuery() |
1245 / 1055 / 293
Регистрация: 07.03.2012
Сообщений: 3,247
|
|
09.06.2013, 16:00 | 2 |
вы бы посмотрели что у вас в dataGridView1.Rows, и всё стало понятно
1
|
0 / 0 / 0
Регистрация: 07.06.2013
Сообщений: 21
|
|
09.06.2013, 17:03 [ТС] | 3 |
0
|
1449 / 1121 / 347
Регистрация: 11.04.2011
Сообщений: 2,621
|
|
10.06.2013, 06:35 | 4 |
Не по теме: Вот она, "строгая типизация" C#. Можно в параметр хранимой процедуру хоть форму целиком передать, а компилятор даже предупреждения не выдаст. Более чем уверен, что Exception, который возникает при выполнении метода ExecuteNonQuery, говорит о том, что он не может преобразовать параметр @trek к типу NVARCHAR. Это происходит из-за того, что вы в качестве параметра @trek передаете не строку, а DataGridViewRowCollection. Собственно, об этом вам и сказал Монфрид, только не напрямую, а намеком.
1
|
0 / 0 / 0
Регистрация: 07.06.2013
Сообщений: 21
|
|
10.06.2013, 16:30 [ТС] | 5 |
Спасибо) Теперь дошло до жирафа)
Но теперь возникает другой вопрос: как в этот параметр @treck передать все значения из столбца treck (он под индексом 1)
0
|
197 / 197 / 5
Регистрация: 24.07.2010
Сообщений: 1,311
|
|
10.06.2013, 16:36 | 6 |
Вы подумайте чуть чуть, как вы в хранимую процедуру, в один параметр запихнете сразу же несколько значений? это для каждого значения отдельно вызывать хранимую процедуру тогда, по другому никак =) Ну конечно можно извратиться через программирования на sql, но не стоит, что хранимка делать должна?
0
|
1449 / 1121 / 347
Регистрация: 11.04.2011
Сообщений: 2,621
|
|
10.06.2013, 17:05 | 7 |
Плохая мысль. 23Alex24 уже ответил, как правильно делать надо. Дополню. Пришло время Вам познакомиться с DataAdapter'ом:
- Использование DataAdapter'а, а заодно еще и DataReader'а. - Обновление источников данных с помощью DataAdapter'а.
1
|
0 / 0 / 0
Регистрация: 07.06.2013
Сообщений: 21
|
|
10.06.2013, 17:22 [ТС] | 8 |
Опять же мои благодарности)
Т.е хранимую процедуру отбрасываю, так? А можете показать, как реализовать с помощью этих методов, поставленную задачу, по нажатию кнопки?) Задергал я уже Вас, наверное..
0
|
1449 / 1121 / 347
Регистрация: 11.04.2011
Сообщений: 2,621
|
|
10.06.2013, 17:30 | 9 |
Вы бы прочитали сначала инфомрацию по ссылкам. DataAdapter содержит в себе четыре команды (на каждое действие по команде) и коннекшн. INSERT-команда у DataAdapter - это будет ваша ХП. Останется только скормить DataAdapter'у вашу DataTable, для того, чтобы он вставил новые записи в БД. В процессе изучения материала вы найдете массу примеров. Поэтому не поленитесь, почитайте. Нет смысла писать приложения БД, используя ADO.NET, если нет понимания механизма этого ADO.NET.
1
|
0 / 0 / 0
Регистрация: 07.06.2013
Сообщений: 21
|
|
10.06.2013, 23:25 [ТС] | 10 |
Спасибо, действительно, стоило прочитать, вначале)
уже разобрался) Простите, просто уже просто в отчаянии был!) Добавлено через 3 часа 38 минут Не сразу заметил) Хранимка должна записывать в БД, в идеале, каждое значение ячейки из Колонки treck, но достаточно необычным образом, т.е в таблице должна создаваться каждый раз новая строка содержащие значение из textBox'а (оно всегда одинаковым будет) и каждое значение ячейки из Колонки treck...как то так... Добавлено через 1 минуту Я все же видно совсем тупой, раз не понимаю, как вызвать это действие по нажатию button1((((( Добавлено через 30 минут А Вообще если кто поможет написать код для кнопки, то я ничего не пожалею... уже просто голова кругом!
0
|
1449 / 1121 / 347
Регистрация: 11.04.2011
Сообщений: 2,621
|
||||||
11.06.2013, 06:29 | 11 | |||||
По итогу все должно закончится такой строкой:
1
|
197 / 197 / 5
Регистрация: 24.07.2010
Сообщений: 1,311
|
|
11.06.2013, 08:11 | 12 |
А вообще возникает вопрос нужна ли вообще эта хранимка может имеет смысл просто делать insert, а так вообще для каждой новой записи надо вызывать отдельно, либо как вам советовали через адаптер, есть еще такая штука как LINQ to SQL, если будет время почитайте про нее тоже=)
1
|
0 / 0 / 0
Регистрация: 07.06.2013
Сообщений: 21
|
||||||
11.06.2013, 21:13 [ТС] | 13 | |||||
(Уже просто стыдно за свою тупость)
0
|
197 / 197 / 5
Регистрация: 24.07.2010
Сообщений: 1,311
|
|
13.06.2013, 06:09 | 14 |
InsPrib это ваш метод какой-то?
0
|
0 / 0 / 0
Регистрация: 07.06.2013
Сообщений: 21
|
|
13.06.2013, 16:41 [ТС] | 15 |
0
|
197 / 197 / 5
Регистрация: 24.07.2010
Сообщений: 1,311
|
|
13.06.2013, 16:56 | 16 |
Ну, возможно вам туда надо передать набор параметров, в этом ваш ступор был?)
0
|
0 / 0 / 0
Регистрация: 07.06.2013
Сообщений: 21
|
|
13.06.2013, 17:58 [ТС] | 17 |
0
|
197 / 197 / 5
Регистрация: 24.07.2010
Сообщений: 1,311
|
|
14.06.2013, 08:16 | 18 |
ну у грида должна быть коллекция columns или rows, там через индексы в общем можно к ячейкам получить доступ =)
1
|
0 / 0 / 0
Регистрация: 07.06.2013
Сообщений: 21
|
|
15.06.2013, 00:52 [ТС] | 19 |
0
|
197 / 197 / 5
Регистрация: 24.07.2010
Сообщений: 1,311
|
|
15.06.2013, 10:01 | 20 |
ну само собой там придется использовать цикл или что-то на подобие =) суть задачи скажите, чтобы лишний раз вас не тормошить и стало более менее понятно что надо сделать - хотя бы чуть чуть расскажите что пытаетесь сделать и для чего, возможно вы где-то подход не правильный выбрали
1
|
15.06.2013, 10:01 | |
15.06.2013, 10:01 | |
Помогаю со студенческими работами здесь
20
Foreach + cmd.ExecuteNonQuery() Почему cmd ругается на %? Почему cmd при запуска данного .bat файла ругается на %? Почему vk ругается на бесплатные хостинги? На какие не ругается? Ошибка в ExecuteNonQuery() Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |