Форум программистов, компьютерный форум, киберфорум
Наши страницы
C#: Базы данных, ADO.NET
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
DenKG
5 / 5 / 7
Регистрация: 23.12.2015
Сообщений: 768
1

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

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

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)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.03.2018, 14:33
Ответы с готовыми решениями:

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

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

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

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

ExecuteNonQuery возвращает -1 (
Почему то запрос не выполняется вот код: помогите плиз... public bool SaveNewCredit(Guid ID,...

11
pincet
1382 / 966 / 130
Регистрация: 23.07.2010
Сообщений: 5,226
11.03.2018, 14:34 2
И как всегда, описание ошибки военная тайна
0
DenKG
5 / 5 / 7
Регистрация: 23.12.2015
Сообщений: 768
11.03.2018, 14:36  [ТС] 3
pincet, просто написано System.StackOverflowException. И всё.
0
pincet
1382 / 966 / 130
Регистрация: 23.07.2010
Сообщений: 5,226
11.03.2018, 14:48 4
Оберни в try/catch и выясни поподробнее
0
DenKG
5 / 5 / 7
Регистрация: 23.12.2015
Сообщений: 768
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
OwenGlendower
Супер-модератор
Эксперт .NET
10448 / 8995 / 3842
Регистрация: 17.03.2014
Сообщений: 18,072
Записей в блоге: 1
11.03.2018, 15:08 6
DenKG, врядли дело в ExecuteNonQuery(). Скорее что-то другое. Если ошибка точно в этом коде, то скажи что такое ID? Не свойство случайно?

Цитата Сообщение от pincet Посмотреть сообщение
Оберни в try/catch и выясни поподробнее
StackOverflowException не ловятся catch
0
DenKG
5 / 5 / 7
Регистрация: 23.12.2015
Сообщений: 768
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
OwenGlendower
Супер-модератор
Эксперт .NET
10448 / 8995 / 3842
Регистрация: 17.03.2014
Сообщений: 18,072
Записей в блоге: 1
11.03.2018, 15:11 8
DenKG, рекурсивный вызов в конце тебя не смущает?
1
DenKG
5 / 5 / 7
Регистрация: 23.12.2015
Сообщений: 768
11.03.2018, 15:12  [ТС] 9
OwenGlendower, смущает. Но я не знаю, как здесь правильно вернуть значение..
0
OwenGlendower
Супер-модератор
Эксперт .NET
10448 / 8995 / 3842
Регистрация: 17.03.2014
Сообщений: 18,072
Записей в блоге: 1
11.03.2018, 15:15 10
Лучший ответ Сообщение было отмечено DenKG как решение

Решение

DenKG, на будущее - бесконечная рекурсия приводит к переполнению стека. У рекурсии, если она в самом деле необходима, должен быть конец. Насчет возврата значения как насчет return new TubeDiscountCard(5, Sum);?
1
DenKG
5 / 5 / 7
Регистрация: 23.12.2015
Сообщений: 768
11.03.2018, 15:18  [ТС] 11
OwenGlendower, большое спасибо. Заработался. Только сейчас, спустя два дня, до меня дошло, что это была рекурсия.
0
OwenGlendower
Супер-модератор
Эксперт .NET
10448 / 8995 / 3842
Регистрация: 17.03.2014
Сообщений: 18,072
Записей в блоге: 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
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.03.2018, 16:16

ExecuteNonQuery непонятная ошибка
Непонятная ошибка : string payAmount =...

Почему ответ от ExecuteNonQuery -1?
int id; using (SqlConnection sqlCon = new SqlConnection(connection)) { ...

ExecuteNonQuery: Свойство Connection не инициализировано
как исправить ошибку, не подскажите??? private void button1_Click_1(object sender, EventArgs e)...


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

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

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