Форум программистов, компьютерный форум, киберфорум
C#: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.92/13: Рейтинг темы: голосов - 13, средняя оценка - 4.92
0 / 0 / 0
Регистрация: 13.11.2019
Сообщений: 38

Крашит DataReader

21.11.2019, 16:12. Показов 2592. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Крашит программу через минут 15 использования
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
void tmr_Update_Tick(object sender, EventArgs e)
        {
            if (start_search == true)
            {
                string query = "SELECT group_id, wall_date, total_minutes FROM group_info ORDER BY ID";
 
                OleDbCommand command = new OleDbCommand(query, myConnection);
                OleDbDataReader reader = command.ExecuteReader();
 
                while (reader.Read())
                {
                    var unixEpoch = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);
 
                    int startTimestamp = Convert.ToInt32(reader[1]);
 
                    var start = unixEpoch.AddSeconds(startTimestamp);
                    var end = DateTime.UtcNow;
 
                    var duration = end - start;
 
                    int minute = Convert.ToInt32(reader[2]);
                    
                    if (duration.TotalMinutes >= minute)
                    {
                        next_key(reader[0].ToString());
                    }
                }
            }
        }
Жалуется на эту строчку
C#
1
OleDbDataReader reader = command.ExecuteReader();
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
21.11.2019, 16:12
Ответы с готовыми решениями:

Асинхронный DataReader
Код работает, я так понимаю что он в новом потоке считывает по срочно записи и записывает в ListView. Тогда вопрос: Как оно может ...

Вопрос по DataReader
Люди, хелп... :( try { conn.Open(); SqlDataReader readit =...

DataReader пустой
Доброго времени суток! Есть хранимая процедура: USE GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO

11
 Аватар для Рядовой
1524 / 914 / 329
Регистрация: 17.05.2015
Сообщений: 3,438
21.11.2019, 16:17
LOOQI, молча крашит?
1
0 / 0 / 0
Регистрация: 13.11.2019
Сообщений: 38
21.11.2019, 16:20  [ТС]
System.Data.OleDb.OleDbException: "Неопознанная ошибка
Указан недопустимый объект, или объект более не задан."
0
800 / 583 / 207
Регистрация: 21.02.2019
Сообщений: 2,095
21.11.2019, 16:26
.. Connection отваливается, может быть? .. где оно у вас открывается (и закрывается)?
0
0 / 0 / 0
Регистрация: 13.11.2019
Сообщений: 38
21.11.2019, 16:29  [ТС]
C#
1
2
3
public partial class MainForm : Form
    {
        public static string connectString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=setting/groups.mdb;";
C#
1
2
3
4
        private void MainForm_FormClosing(object sender, FormClosingEventArgs e)
        {
            myConnection.Close();
        }
0
800 / 583 / 207
Регистрация: 21.02.2019
Сообщений: 2,095
21.11.2019, 16:48
... если это Connection (хотя, не факт), то можно проверять состояние, как здесь:
Check if SQL Connection is Open or Closed
0
0 / 0 / 0
Регистрация: 13.11.2019
Сообщений: 38
21.11.2019, 16:51  [ТС]
Это точно не Connection,
данный запрос находиться в таймере который вызывается каждую секунду, и программу крашит через минут 15-20, я ради интереса, сделал вызов каждые 100 мс, программу крашнуло через секунд 5-10, но не понимаю почему, и как решить данную проблему?
0
800 / 583 / 207
Регистрация: 21.02.2019
Сообщений: 2,095
21.11.2019, 16:54
...ну, так ставьте таймер на 10 минут и перезапускайте ... но проверить, есть ли Connection (и если нет, выдать Exception с описанием) не помешает ... а так - что гадать, где что переполнилось или отвалилось?
0
0 / 0 / 0
Регистрация: 13.11.2019
Сообщений: 38
21.11.2019, 17:08  [ТС]
Состояние проверил, все хорошо, ошибка там же
C#
1
OleDbDataReader reader = command.ExecuteReader();
Только теперь дало немного больше времени
0
 Аватар для Cupko
658 / 595 / 171
Регистрация: 17.07.2012
Сообщений: 1,682
Записей в блоге: 1
21.11.2019, 17:30
Лучший ответ Сообщение было отмечено LOOQI как решение

Решение

Вероятно, где-то лочится файл открытым ридером, другим приложением или еще черт знает чем.
Сделайте по-нормальному, с Close(), с using и с новым экземпляром Connection на каждый тик, и посмотрите.
1
0 / 0 / 0
Регистрация: 13.11.2019
Сообщений: 38
21.11.2019, 17:53  [ТС]
да, я забыл отписать, что добавил Close и все заработало.
0
Эксперт .NET
6691 / 4102 / 1607
Регистрация: 09.05.2015
Сообщений: 9,575
21.11.2019, 18:39
Нужно не Close добавлять, а в using заворачивать.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
21.11.2019, 18:39
Помогаю со студенческими работами здесь

DataReader не возвращает данные
Есть такой код: private void refreshWorkshop() { db_status(); SQLiteCommand workshop = new...

DataReader медленное чтение
Читаю данные с помощью DataReader из dbf файла - OleDbCommand commDbf = new OleDbCommand("select * from list.dbf", connExcel); ...

Правильный синтаксис DataReader
SQL = "SELECT COUNT(*) AS count FROM .. WHERE = '" + login.Trim() + "';"; using (SqlCommand command = new SqlCommand(SQL,...

Заполнить datareader из excell
при экспорте данных в excell все ячейки диапазона заполнены одним и тем же значением а уменя в БД список.Помогите пожалуйста...где...

метод HasRows в Datareader
public bool FindStuff(int IdStuff) { string value = Convert.ToString(IdStuff); string ComandLine =...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать контроль заполнения реквизита "ПричинаСписания". . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Программное заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru