Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
4 / 4 / 1
Регистрация: 15.04.2017
Сообщений: 346

Почему я получаю пустое значение в передаче параметров из БД?

17.10.2019, 18:30. Показов 1402. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Вот кусок кода:
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
string ID_Derzhatel = manipulationDB.generationID("SELECT ИД FROM Банк WHERE ФИО='" + metroGridMinus.CurrentRow.Cells[1].Value + "'");
                        string ID_Operation = manipulationDB.generationID("SELECT ИД FROM Операция WHERE Наименование='" + metroGridMinus.CurrentRow.Cells[2].Value + "'");
                        string ID_Valute = manipulationDB.generationID("SELECT ИД FROM Валюта WHERE [Сокращенное наименование]='" + metroGridMinus.CurrentRow.Cells[5].Value + "'");
                        string query_Minus = "SELECT ИД FROM Приход WHERE Держатель=@derzh AND Наименование=@oper " +
                             "AND Описание=@info AND Сумма=@sum AND Валюта=@val";
 
                        string ID_Minus = "";
                        try
                        {
                            SqlCommand comm = new SqlCommand(query_Minus, connect);
                            connect.Open();
                            comm.Parameters.AddWithValue("@derzh", ID_Derzhatel);
                            comm.Parameters.AddWithValue("@oper", ID_Operation);
                            comm.Parameters.AddWithValue("@info", metroGridMinus.CurrentRow.Cells[3].Value);
                            comm.Parameters.AddWithValue("@sum", metroGridMinus.CurrentRow.Cells[4].Value);
                            comm.Parameters.AddWithValue("@val", ID_Valute);
 
                            if (comm.ExecuteScalar() != null)
                            {
                                ID_Minus = comm.ExecuteScalar().ToString();
                            }
                            else
                            {
                                ID_Minus = "";
                            }
                            connect.Close();
 
                            manipulationProgramm.ZapisIndex(ID_Minus);
ID_Minus должно равно цифре, но задает пустое значение. Все параметры четко передаются, смотрел через отладчик. Так почему же получается нулевое значение?
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
17.10.2019, 18:30
Ответы с готовыми решениями:

Почему выдает ошибку при передаче по ссылке параметров?
#include <iostream> /* run this program using the console pauser or add your own getch, system("pause") or input loop */ void...

Почему процедура выводит пустое значение?
procedure TNewThread.Execute; begin Form11.memo2.Text:='1'; s4:=(Form11.WebBrowser1.Document as IHTMLDocument2).body.innerHTML;...

Одинаково ли быстродействие: 1. при передаче параметров в функцию или 2. создание кортежа и передаче его в функцию?
Одинаково ли быстродействие: 1. при передаче параметров в функцию или 2. создание кортежа и передаче его в функцию? Зависит ли это от...

2
2810 / 1679 / 885
Регистрация: 14.04.2015
Сообщений: 5,723
17.10.2019, 20:21
Лучший ответ Сообщение было отмечено BOEHKOMAT как решение

Решение

BOEHKOMAT, а ты не ппробовал тот же запрос на базе выполнить? 99% на то, что нет выходной выборки по текущим условиям.
0
 Аватар для Enifan
1849 / 1191 / 501
Регистрация: 14.10.2018
Сообщений: 3,214
17.10.2019, 21:24
BOEHKOMAT, я не эксперт читать доки майкрософта но как я понял при неудачном запросе метод возвращает 0, а вы пытаетесь сделать проверку на null. Попробуйте делать проверку на 0, либо используйте класс SqlDataReader.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
connect.Open();
// Добавление параметров
SqlDataReader reader = comm.ExecuteReader();
if (reader.HasRows == false)
{
    //Ничего НЕ найдено
}
else
{
    while(reader.Read())
    {
         ID_Minus = reader.GetInt32(0).ToString();
         break; // одного прохода Ридера достаточно
    }
}
reader.Close(); // закрывать обязательно, или ошибка на следующем запросе
connect.Close();
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
17.10.2019, 21:24
Помогаю со студенческими работами здесь

При передаче функции готового списка - получаю ошибку TypeError: 'list' object is not callable
Вот как выглядит сама функция def Grad(self, a_SummErrors): The_dXdW = self.dXdW() return * The_dXdW for t in...

Независимо от параметров запроса я получаю только первую страницу
Здравствуйте! Мне необходимо собрать все ссылки на предметы ксго в стиме. Я делаю запросы к ...

Ошибка в передаче параметров
Доброй ночи. форумчане, помогите в решении такой программы: получает матрицу из файла или клавы или рандомом по выбору пользователя, и...

Вопросик по передаче параметров
Вопрос!Можно ли передать параметры в LotusScript?К примеру есть агент написаный на LotusScript,можно ли вызвать запуск этого агента из Java...

Ошибка при передаче параметров
Выбираю путь в переменную path, затем пытаюсь передать эту переменную в качестве параметра в хранимую процедуру на SQL сервере. ...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: 1. Реализовать контроль заполнения реквизита. . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru