Форум программистов, компьютерный форум, киберфорум
C#: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
 Аватар для Sayanchik777
9 / 9 / 6
Регистрация: 09.05.2015
Сообщений: 529

Асинхронный DataReader

30.07.2018, 00:17. Показов 803. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Код работает, я так понимаю что он в новом потоке считывает по срочно записи и записывает в ListView.
Тогда вопрос: Как оно может обращаться к ListView, если ListView в главному потоке, а await cm.ExecuteReaderAsync(); в другому?
или
SqlDataReader dr = await cm.ExecuteReaderAsync();
или dr в первому потоке, а cm.ExecuteReaderAsync(); из второго скрыто передает dr в первом потоке?
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
using System;
using System.Configuration;
using System.Data.SqlClient;
using System.Windows.Forms;
 
 
namespace BeerHouse2
{
    class BeerHouseDB
    {
        public async void Show_TablePrice(ListView listView, string nameTable)
        {
            SqlConnection connection = new SqlConnection(ConfigurationManager.ConnectionStrings["Connect1"].ConnectionString);
 
            try
            {
                connection.Open();
            }
            catch (Exception ee)
            {
                Console.WriteLine(ee.Message);
            }
 
            SqlCommand cm = new SqlCommand("SELECT * FROM " + nameTable, connection);
 
            try
            {
                SqlDataReader dr = await cm.ExecuteReaderAsync();
                int Counter = 0;
                listView.Items.Clear();
                while (await dr.ReadAsync())
                {
                    Counter++;
                    ListViewItem lvi = new ListViewItem(new string[] { Counter.ToString(), dr[1].ToString(), dr[3].ToString(), dr[2].ToString() });
                    listView.Items.Add(lvi);
                }
            }
            catch (Exception ee)
            {
                Console.WriteLine(ee.Message);
            }
        }
 
    }
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
30.07.2018, 00:17
Ответы с готовыми решениями:

Крашит DataReader
Крашит программу через минут 15 использования void tmr_Update_Tick(object sender, EventArgs e) { if (start_search...

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

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

2
 Аватар для netBool
325 / 304 / 173
Регистрация: 16.11.2010
Сообщений: 1,069
Записей в блоге: 9
30.07.2018, 15:42
Цитата Сообщение от Sayanchik777 Посмотреть сообщение
Как оно может обращаться к ListView, если ListView в главному потоке, а await cm.ExecuteReaderAsync(); в другому?
await cm.ExecuteReaderAsync() выполняется асинхронно в пуле потоков, и пока она выполняется, код после await cm.ExecuteReaderAsync() ждет. Когда await cm.ExecuteReaderAsync() завершится, выполнение кода после нее продолжится асинхронно в том же контексте (в главном потоке)
0
360 / 287 / 76
Регистрация: 21.06.2016
Сообщений: 1,115
31.07.2018, 08:43
Цитата Сообщение от netBool Посмотреть сообщение
выполнение кода после нее продолжится асинхронно в том же контексте
Думаю, имелось в виду именно синхронно, с возвращением в контекст синхронизации UI потока
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
31.07.2018, 08:43
Помогаю со студенческими работами здесь

Нужен совет по DataReader
Вывожу строки из бд в XML-файлик: dataReadXML = sql.ExecuteProc("XML_export", new Dictionary<string, object>() ...

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
Уведомление о неверно выбранном значении справочника
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. Реализовать контроль заполнения реквизита. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru