Форум программистов, компьютерный форум, киберфорум
C#: Базы данных, ADO.NET
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.78/9: Рейтинг темы: голосов - 9, средняя оценка - 4.78
11 / 11 / 7
Регистрация: 23.12.2015
Сообщений: 950
1

Ругается на ExecuteNonQuery();

11.03.2018, 14:33. Показов 1685. Ответов 11
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
C#
1
2
3
4
5
6
7
8
9
10
11
12
string card = "TransistorCard";
            sqlConnection.Open();
            using (var MyConnection = new SqlConnection(StoreConnectionString))
            {
                SqlCommand intoBasket = new SqlCommand("Update Buyers SET Card = @card where ID = @BuyerID", MyConnection);
                intoBasket.Parameters.AddWithValue("@card", card.ToString());
                intoBasket.Parameters.AddWithValue("@BuyerID", ID.ToString());
                MyConnection.Open();
                intoBasket.ExecuteNonQuery();
 
                sqlConnection.Close();
            }
Почему-то ругается на intoBasket.ExecuteNonQuery();. Никак понять не могу. В чем проблема?
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.03.2018, 14:33
Ответы с готовыми решениями:

Программа ругается на cmd.ExecuteNonQuery()
Здравствуйте. Подскажите пожалуйста, где у меня ошибка в коде(ругается на cmd.ExecuteNonQuery())....

При попытке записать в новую строку из textbox ругается на inscmd.ExecuteNonQuery
При попытке записать в новую строку An unhandled exception of type 'System.ArgumentException'...

Ругается на "cmd.ExecuteNonQuery();"
Здравствуйте! Прошу помощь, так как сам уже просто отчаялся! есть хранимая процедура: CREATE...

Почему vk ругается на бесплатные хостинги? На какие не ругается?
Здравствуйте, Что нужно сделать, чтобы vk не ругался на бесплатный хостинг? Я нашёл отличный...

11
1643 / 1144 / 171
Регистрация: 23.07.2010
Сообщений: 6,794
11.03.2018, 14:34 2
И как всегда, описание ошибки военная тайна
0
11 / 11 / 7
Регистрация: 23.12.2015
Сообщений: 950
11.03.2018, 14:36  [ТС] 3
pincet, просто написано System.StackOverflowException. И всё.
0
1643 / 1144 / 171
Регистрация: 23.07.2010
Сообщений: 6,794
11.03.2018, 14:48 4
Оберни в try/catch и выясни поподробнее
0
11 / 11 / 7
Регистрация: 23.12.2015
Сообщений: 950
11.03.2018, 15:07  [ТС] 5
pincet, не знаю. Вот так обернул, ничего не выводит:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
string card = "TubeCard";
            sqlConnection.Open();
            using (var MyConnection = new SqlConnection(StoreConnectionString))
            {
                SqlCommand intoBasket = new SqlCommand("Update Buyers SET Card = @card where ID = @BuyerID", MyConnection);
                intoBasket.Parameters.AddWithValue("@card", card.ToString());
                intoBasket.Parameters.AddWithValue("@BuyerID", ID.ToString());
                MyConnection.Open();
                try
                {
                    intoBasket.ExecuteNonQuery();                    
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex);
                    throw;
                }
                sqlConnection.Close();
            }
Добавлено через 1 минуту
Или как из оконного приложения вызвать консоль?
Просто это WinForms.
0
Администратор
Эксперт .NET
17022 / 13374 / 5218
Регистрация: 17.03.2014
Сообщений: 27,353
Записей в блоге: 1
11.03.2018, 15:08 6
DenKG, врядли дело в ExecuteNonQuery(). Скорее что-то другое. Если ошибка точно в этом коде, то скажи что такое ID? Не свойство случайно?

Цитата Сообщение от pincet Посмотреть сообщение
Оберни в try/catch и выясни поподробнее
StackOverflowException не ловятся catch
0
11 / 11 / 7
Регистрация: 23.12.2015
Сообщений: 950
11.03.2018, 15:09  [ТС] 7
OwenGlendower, входной параметр:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
        public override AbstractCard setTubeDiscountCard(int ID, double Sum)
        {
            string card = "TubeCard";
            sqlConnection.Open();
            using (var MyConnection = new SqlConnection(StoreConnectionString))
            {
                SqlCommand intoBasket = new SqlCommand("Update Buyers SET Card = @card where ID = @BuyerID", MyConnection);
                intoBasket.Parameters.AddWithValue("@card", card.ToString());
                intoBasket.Parameters.AddWithValue("@BuyerID", ID.ToString());
                MyConnection.Open();
                intoBasket.ExecuteNonQuery();                    
 
                sqlConnection.Close();
            }
            TubeDiscountCard tubeCard = new TubeDiscountCard(5, Sum);
            return setTubeDiscountCard(ID, Sum);
        }
0
Администратор
Эксперт .NET
17022 / 13374 / 5218
Регистрация: 17.03.2014
Сообщений: 27,353
Записей в блоге: 1
11.03.2018, 15:11 8
DenKG, рекурсивный вызов в конце тебя не смущает?
1
11 / 11 / 7
Регистрация: 23.12.2015
Сообщений: 950
11.03.2018, 15:12  [ТС] 9
OwenGlendower, смущает. Но я не знаю, как здесь правильно вернуть значение..
0
Администратор
Эксперт .NET
17022 / 13374 / 5218
Регистрация: 17.03.2014
Сообщений: 27,353
Записей в блоге: 1
11.03.2018, 15:15 10
Лучший ответ Сообщение было отмечено DenKG как решение

Решение

DenKG, на будущее - бесконечная рекурсия приводит к переполнению стека. У рекурсии, если она в самом деле необходима, должен быть конец. Насчет возврата значения как насчет return new TubeDiscountCard(5, Sum);?
1
11 / 11 / 7
Регистрация: 23.12.2015
Сообщений: 950
11.03.2018, 15:18  [ТС] 11
OwenGlendower, большое спасибо. Заработался. Только сейчас, спустя два дня, до меня дошло, что это была рекурсия.
0
Администратор
Эксперт .NET
17022 / 13374 / 5218
Регистрация: 17.03.2014
Сообщений: 27,353
Записей в блоге: 1
11.03.2018, 16:16 12
Цитата Сообщение от DenKG Посмотреть сообщение
C#
1
2
intoBasket.Parameters.AddWithValue("@card", card.ToString());
intoBasket.Parameters.AddWithValue("@BuyerID", ID.ToString());
Небольшой совет вдогонку. Вызовы ToString() здесь не нужны. В первом случае потому что card и так строка. Во втором потому что колонка ID числовая (скорее всего) и нет необходимости выполнять двойное преобразование: сначала на стороне C#, затем на стороне SQL Server.
0
11.03.2018, 16:16
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.03.2018, 16:16
Помогаю со студенческими работами здесь

ExecuteNonQuery возвращает -1
Подскажите, пожалуйста, почему ExecuteNonQuery возвращает -1? private static string connStr...

помогите с ExecuteNonQuery
Проблема не обновляются данные в БД .sdf. Форма справочник / грид через select вытаскивает данные...

ExecuteNonQuery returns -1
Доброго времени суток! просмотрел похожие темы, решения не нашел( столкнулся с такой проблемой:...

не работает ExecuteNonQuery();
Хочу написать процедуру, которая по аббревиатуре искала бы в таблице полное название факультета, но...


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

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