Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
2 / 2 / 0
Регистрация: 01.10.2016
Сообщений: 239

Изменяется значение переменной

28.03.2017, 10:04. Показов 1419. Ответов 17
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Привет, не понятно почему меняется значение переменной Theme.ID, в первой форме принимает значение 1,а после перехода на вторую по не понятным причинам становится 2, При этом в коде она больше нигде не используется
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
       private void predTest_Load(object sender, EventArgs e)
        {
            connect.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=F:/Показать шпаковой 2/Вопросы.mdb";
            connect.Open();
            OleDbCommand cmd = new OleDbCommand();
            cmd.Connection = connect;
            cmd.CommandType = CommandType.Text;
            cmd.CommandText = ("SELECT DISTINCT Темы.[Тема], Вопросы.[Тема_ID] FROM Темы INNER JOIN Вопросы ON Темы.[Код] = Вопросы.[Тема_ID]");
            OleDbDataReader reader = cmd.ExecuteReader();
            while (reader.Read())
            {
                Theme.ID = (int)reader["Тема_ID"];
                Theme.Text = (string)reader["Тема"];
                listBox1.Items.Add(Theme.Text);
            }
        }
Миниатюры
Изменяется значение переменной   Изменяется значение переменной  
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
28.03.2017, 10:04
Ответы с готовыми решениями:

Не изменяется значение в DataGridView
Имею следующий код, label1 просто для проверки того что, значение выбирается. Дак вот данные в датагрид не изменяются в зависимости от...

Как избежать изменения одной переменной ссылочного типа, когда изменяется значение другой переменной
Подскажите, пожалуйста, как избежать изменения одной переменной ссылочного типа, когда изменяется значение другой переменной ссылочного...

Почему изменяется значение переменной?
Помогите новичку. Я пишу простейший код, но в строках 34-38 происходит что-то странное. Переменная i как-будто становится ссылкой и при...

17
478 / 241 / 74
Регистрация: 25.05.2012
Сообщений: 1,136
Записей в блоге: 1
28.03.2017, 10:11
connection123, а на класс Theme можно взглянуть?

Не по теме:

датасорс шикарный

0
2 / 2 / 0
Регистрация: 01.10.2016
Сообщений: 239
28.03.2017, 10:12  [ТС]
NewOrdered,
C#
1
2
3
4
5
6
    public class Theme
    {
        public static int ID { get; set; }
        public static string Text { get; set; }
        public static bool End { get; set; }
    }
0
478 / 241 / 74
Регистрация: 25.05.2012
Сообщений: 1,136
Записей в блоге: 1
28.03.2017, 10:16
connection123, а в ридере сколько строк?
0
2 / 2 / 0
Регистрация: 01.10.2016
Сообщений: 239
28.03.2017, 10:17  [ТС]
NewOrdered, В запросе используется такая строка WHERE Вопросы.[Тема_ID]=@ThemeID
А Theme.ID изменяется в зависимости от выбранной темы, но в конечном итоге какую бы тему не выбрал будет двойка

Добавлено через 51 секунду
NewOrdered, Field Count = 2
0
478 / 241 / 74
Регистрация: 25.05.2012
Сообщений: 1,136
Записей в блоге: 1
28.03.2017, 10:20
connection123, в порядке бреда: попробуйте обращаться к полям ридера по индексу, а не имени поля.
0
2 / 2 / 0
Регистрация: 01.10.2016
Сообщений: 239
28.03.2017, 10:23  [ТС]
NewOrdered,
C#
1
2
                Theme.ID = (int)reader[1];
                Theme.Text = (string)reader[0];
Аналогично, на первой форме значение 1, на второй уже 2
0
478 / 241 / 74
Регистрация: 25.05.2012
Сообщений: 1,136
Записей в блоге: 1
28.03.2017, 10:29
Цитата Сообщение от connection123 Посмотреть сообщение
C#
1
public class Theme
а почему выбран такой подход: публичные статические свойства нестатического класса?
0
2 / 2 / 0
Регистрация: 01.10.2016
Сообщений: 239
28.03.2017, 10:31  [ТС]
NewOrdered, Честно сказать, не знаю, ибо если я убираю static то я не вижу эти переменные в коде

Добавлено через 1 минуту
NewOrdered, Ну в любом случае проблема не в классе,ибо даже там нету никаких указаний по поводу увеличения переменной
0
478 / 241 / 74
Регистрация: 25.05.2012
Сообщений: 1,136
Записей в блоге: 1
28.03.2017, 10:37
Цитата Сообщение от connection123 Посмотреть сообщение
NewOrdered, Честно сказать, не знаю, ибо если я убираю static то я не вижу эти переменные в коде
Я правильно понял, что класс Theme используется для хранения глобальных данных?

Добавлено через 1 минуту
Цитата Сообщение от connection123 Посмотреть сообщение
NewOrdered, Ну в любом случае проблема не в классе,ибо даже там нету никаких указаний по поводу увеличения переменной
То есть Find all references результата не дает?
0
2 / 2 / 0
Регистрация: 01.10.2016
Сообщений: 239
28.03.2017, 10:54  [ТС]
NewOrdered, Да, в нем хранится ID (проходимой в текущее время темы) Text (название темы) End (завершена ли тема)

Добавлено через 32 секунды
NewOrdered, Find all references - c этим поподробнее, что и как?

Добавлено через 16 минут
NewOrdered, Какие могут быть варианты?)
0
478 / 241 / 74
Регистрация: 25.05.2012
Сообщений: 1,136
Записей в блоге: 1
28.03.2017, 11:11
Цитата Сообщение от connection123 Посмотреть сообщение
Find all references - c этим поподробнее, что и как?
в описании класса щелкаете ПКМ по имени (в данном случае Theme) и выбирает пункт Find All References в контекстном меню. В окне результатов получите список всех мест, где используется искомый тип.
0
2 / 2 / 0
Регистрация: 01.10.2016
Сообщений: 239
28.03.2017, 11:20  [ТС]
NewOrdered, Разобрался, ридер назначает все таки двойку

Добавлено через 1 минуту
NewOrdered, Только как это исправить,я выбираю любую тему,но в конечном итоге все равно 2
0
1167 / 885 / 517
Регистрация: 09.04.2014
Сообщений: 2,098
28.03.2017, 13:04
1. убираем static
C#
1
2
3
4
5
6
7
8
9
10
    public class Theme
    {
        public int ID { get; set; }
        public string Text { get; set; }
        public bool End { get; set; }
        public overide string ToString()
        {
             return Text;
        }
    }
2. в listBox1 добавляем начитанные объекты
C#
1
2
3
4
5
6
7
 while(reader.Read())
            {
                Theme theme = new Theme();
                theme.ID = (int)reader["Тема_ID"];
                theme.Text = (string)reader["Тема"];
                listBox1.Items.Add(theme);
            }
3. там где нужен выбранный в listBox1 объект
C#
1
2
Theme selectedTheme = listBox1.SelectedItem as Theme;
// тут можно использовать selectedTheme.ID
2
2 / 2 / 0
Регистрация: 01.10.2016
Сообщений: 239
28.03.2017, 15:47  [ТС]
nedel, Выбранный объект мне нужен вот тут:
C#
1
2
3
4
                var cmd = new OleDbCommand("SELECT Вопросы.[ID вопроса], Ответы.ID AS [ID ответа], Вопросы.[Текст] AS [Текст вопроса],Вопросы.[Тема_ID], Ответы.[Текст] AS [Текст ответа], [Правильность ответа] FROM Вопросы LEFT JOIN Ответы ON Ответы.[ID вопроса] = Вопросы.[ID вопроса] WHERE Вопросы.[Тема_ID]=@ThemeID ORDER BY Вопросы.[ID вопроса], Ответы.ID");
                cmd.Connection = connect;
                connect.Open();
                cmd.Parameters.AddWithValue("@ThemeID", Theme.ID)
Там где WHERE подставлялся ИД темы для того чтоб записать их в Лист
Как мне теперь в параметр вставить переменную Theme.ID ибо не статичную он ее не видит на другой форме
0
478 / 241 / 74
Регистрация: 25.05.2012
Сообщений: 1,136
Записей в блоге: 1
28.03.2017, 16:28
connection123, передайте ссылку на выбранный объект второй форме
0
2 / 2 / 0
Регистрация: 01.10.2016
Сообщений: 239
28.03.2017, 16:32  [ТС]
NewOrdered, иницилизировать эту форму в форме где мне это нужно?
predTest predT = new predTest();
я правильно думаю?
0
478 / 241 / 74
Регистрация: 25.05.2012
Сообщений: 1,136
Записей в блоге: 1
28.03.2017, 16:38
connection123,
Ответы на 7 самых частых вопросов по WinForms
п. 2.3
для вашего случая как-то так

C#
1
2
3
4
5
6
7
8
public Form2(Theme _selectedTheme)
{
    InitializeComponent();
    //Обрабатываем данные
    //Или записываем их в поле
    selectedTheme = _selectedTheme;
}
private Theme selectedTheme;


C#
1
2
Form2 f = new Form2(selectedTheme);
f.ShowDialog();
Но это если у вас вторая форма открывается из первой.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
28.03.2017, 16:38
Помогаю со студенческими работами здесь

Почему значение переменной Result не изменяется?
Подскажите почему значение переменной Result не изменяется (возвращается 0). static int Solution(int ResArray) { ...

Надо вывести название переменной, тип данных переменной, значение переменной
у нас есть переменная int variable = 0; Надо вывести название переменной, тип данных переменной, значение переменной как это сделать?

Почему изменяется значение?
Здравствуйте! Есть класс Cell, в котором есть List с именем Genome. Мне надо изменить случайный элемент Cell2, но вместе с ним меняется и...

Значение аргумента x изменяется от a до b с шагом h
Здравствуйте, нужна помощь с задачкой. Я ее почти решил, но что-то сделал неправильно. Хелп плиз. Полный текст задачи: Значение...

Не изменяется значение переменной в объекте
Переменная health меняет своё значение только внутри функции punch(), при этом её значение в объектах a и b остаётся неизменным. Как...


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

Или воспользуйтесь поиском по форуму:
18
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru