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

Вернуть значение из метода

22.11.2018, 15:53. Показов 2170. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Доброго времени суток. Помогите пожалуйста решить вопрос. Есть класс с методом, есть глобальная переменная. Как вернуть значение из метода в эту глобальную переменную, немного мозг уже не соображает.

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
 
public static bool countRowsQuery;// Объявлено вне класса 
 
public class NonQuery
{
 public void QueryReaderDataLog(string Query, DataGridView dataGr,ComboBox comboBox = null)
            {
                try
                {
                    string count = dt.Rows.Count.ToString();
                    if(Convert.ToInt32(count) > 0)
                    {
                        countRowsQuery = true;
                    }
                    else
                    {
                        countRowsQuery = false; 
                    }
            }
}
Нужно присваивать постоянно значение глобальной переменной либо true либо false. Такой код возвращает всегда true

Добавлено через 19 минут
Всем спасибо, разобрался в чем дело. Просто всегда возвращалось значение больше нуля....

Как правильней возвращать значения? Читал про get и set, но че то пока не понял для чего они.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.11.2018, 15:53
Ответы с готовыми решениями:

Вернуть значение из метода запущенного в потоке (Thread)
Добрый день, создал поток и стартую его. Он находится в одном проекте, обращаюсь к методу из...

Как через invoke вернуть параметр метода
как через invoke вернуть параметр метода

Вернуть значение переменной с задержкой
Доброго времени суток! Интересует такой вопрос как вернуть значение переменной "bool" с задержкой...

вернуть значение SQL запроса в C#
Здравствуйте! как можно получить значение колонки isAdmin? public static bool isAdmin(string...

4
784 / 615 / 273
Регистрация: 04.08.2015
Сообщений: 1,707
22.11.2018, 16:49 2
ЕвгенийКор,
C#
1
countRowsQuery=dt.Rows.Count>0;
Только использовать статическое свойство-плохая идея. Скажите, что вам надо сделать, и вам подскажут - как.
1
1 / 1 / 0
Регистрация: 30.11.2015
Сообщений: 103
22.11.2018, 17:09  [ТС] 3
Цитата Сообщение от Igr_ok Посмотреть сообщение
Только использовать статическое свойство-плохая идея. Скажите, что вам надо сделать, и вам подскажут - как.
Выполняется запрос на добавление в Методе 1, но с помощью Метода 2 перед этим нужно проверить, существует ли уже такое значение в бд отправив запрос, если существует, то добавление производить не нужно, иначе добавление нужно произвести, где выполнение кода происходит по нажатию Кнопки.

Метод 2, где нужно добавить проверку строк после выполнения запроса. Проверил, если запрос вернул строк больше чем 0, тогда вернул в переменную countRowsQuery true, иначе false.
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
 public static bool countRowsQuery;
 
            public void QueryReaderDataLog(string Query, DataGridView dataGr,ComboBox comboBox = null)
            {
                OleDbConnection myOleDbConnection = new OleDbConnection(connectString);
                try
                {
                    myOleDbConnection.Open();
                    OleDbDataAdapter dAdapter = new OleDbDataAdapter(Query, myOleDbConnection);
                    DataTable dt = new DataTable();
                    dAdapter.Fill(dt);
                    string count = dt.Rows.Count.ToString();
                    //MessageBox.Show(count + "Method");
                    if (Convert.ToInt32(count) !=0) // Добавил такую проверку
                    {
                        countRowsQuery = true;
                    }
                    else
                    {
                        countRowsQuery = false; 
                    }
                    //MessageBox.Show(count);
                    if (dataGr!=null)
                    {
                        dataGr.DataSource = dt; //выводим
                    }
                    
                    if(comboBox!=null)
                    {
                            comboBox.DataSource = dt;
                            comboBox.DisplayMember = "id";// столбец для отображения
                            comboBox.ValueMember = "id";
                    }
 
                }
                catch (Exception e)
                {
                    MessageBox.Show("Ошибка подключения к базе данных или задан не верный запрос. Такое может произойти по следующим причинам: \n 1.БД или таблица БД была удалена или переименована \n 2.Выполняется запрос содержащий синтаксические ошибки \n Если у вас возникла данная ошибка попробуйте скачать программу заново или обратитесь к администратору \n" + e.ToString());
                    LogFile log = new LogFile();
                    log.insertToFile("Errorlog", "Метод QueryReader \r\n" + e.ToString());
                }
                finally
                {
                    myOleDbConnection.Close();
                }
            }
По нажатию кнопки проверяю какое значение вернулось глобальную переменную countRowsQuery, если вернулось false, значит в БД нет такого значения и его нужно добавить, если true, то выполняется другой код.
C#
1
2
3
4
if (countRowsQuery==false)
                    {
                        query.NQuery("INSERT INTO reportScan (SessionNum,dateScan) VALUES (" + sessionBox.Text.ToString() + ", '" + thisDay + "')");
                    }
Вопрос в том, как получить это из такого метода путем что то типа
C#
1
query.NQuery.Value();
Чтобы просто возвращалось значение либо true либо false, после конкретной проверки в конкретном куске кода этого Метода, не прибегая к переменным?
0
784 / 615 / 273
Регистрация: 04.08.2015
Сообщений: 1,707
22.11.2018, 23:19 4
ЕвгенийКор, в одном скрипте можно сразу проверить наличие записи в БД и сделать INSERT, если ее нет. Какая у вас СУБД?
1
1 / 1 / 0
Регистрация: 30.11.2015
Сообщений: 103
27.11.2018, 06:49  [ТС] 5
Цитата Сообщение от Igr_ok Посмотреть сообщение
ЕвгенийКор, в одном скрипте можно сразу проверить наличие записи в БД и сделать INSERT, если ее нет. Какая у вас СУБД?
У меня в этом случае обычная локальная БД access. Сам код работает, в принципе без затупов, свою функцию метод выполняет. Я считаю просто, что есть более правильное описание этой задачи, без разработки велосипеда и костылей, с помощью интерфейсов, что к сожалению пока не освоил
0
27.11.2018, 06:49
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.11.2018, 06:49
Помогаю со студенческими работами здесь

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

Как вернуть одно string-значение из БД ?
Здравствуйте, никак не могу разобраться с вопросом. Нужно вернуть одиночное значение имени клиента...

Ждать событие и только тогда вернуть значение из функции
public override int Execute() { mouseHook.Start(); return 1; }...

FastTree: Вернуть значение Row, если имена столбцов не одинаковые
Всем добрый день! Может и банальный вопрос, недосмотрел где-то, но прошу помощи: БД MSSQL, 4...


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

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