Ответ из БД записать в список c#

Raids

Client
Регистрация
12.09.2017
Сообщения
41
Благодарностей
19
Баллы
8
Из БД приходит ответ (разделитель \r\n) некая выборка
1
2
3
4
5
6
7
и т.д. около 2500 строк
Мне нужно выбрать рандомную строку, но как? Пробовал запихнуть в список с разделителем \r\n, безрезультатно. Смена разделителя тоже ничего не дала.

запрос к БД такой:
Код:
ZennoPoster.Db.ExecuteQuery("SELECT id FROM userID WHERE groupN = 'Участник' and lastD like '%2018%' and [check] = 0;", null, ZennoLab.InterfacesLibrary.Enums.Db.DbProvider.Odbc, "Dsn=SQLite3 Datasource; database=" + project.Path + "test.db;", ";","\r\n");
Помогите пожалуйста.
Уже 3 час безрезультатно гуглю.
 

Raids

Client
Регистрация
12.09.2017
Сообщения
41
Благодарностей
19
Баллы
8
Решение найдено. Добавил явные разделители и регуляркой добавил в список, но по мне должно быть более изящное решение.

Код:
IZennoList list= project.Lists["list"];
var reg = new Regex(@"(?<=vvbbvv).*?(?=vvbbvv)");
var requestdb= "vvbbvv" + ZennoPoster.Db.ExecuteQuery("SELECT id FROM userId WHERE groupN = 'Участник'  and lastD like '%2018%' and [check] = 0;", null, ZennoLab.InterfacesLibrary.Enums.Db.DbProvider.Odbc, "Dsn=SQLite3 Datasource; database=" + project.Path + "test.db;", ";", "vvbbvv") + "vvbbvv";
reg.Matches(requestdb).Cast<Match>().ToList().ForEach(m=>list.Add(m.Value));
 
Последнее редактирование:

DmitryAk

Client
Регистрация
14.12.2016
Сообщения
860
Благодарностей
818
Баллы
93
Не проще было сразу рэндомное значение выбирать?
Код:
SELECT id
FROM userId
WHERE
    groupN = 'Участник'
    and lastD like '%2018%'
    and [check] = 0
ORDER BY RAND()
LIMIT 1;
ps: хотя хз сработает ли на склайте
зыы: сработает, только синтаксис другой:
Код:
ORDER BY Random()
LIMIT    1
ну и сначала выборку всей таблицы сделает, а потом из неё одиночную запись дернет, но это уже косяк лайта, так что непонятно что лучше для этой ситуации.
 
  • Спасибо
Реакции: Raids

Raids

Client
Регистрация
12.09.2017
Сообщения
41
Благодарностей
19
Баллы
8
Не проще было сразу рэндомное значение выбирать?
Код:
SELECT id
FROM userId
WHERE
    groupN = 'Участник'
    and lastD like '%2018%'
    and [check] = 0
ORDER BY RAND()
LIMIT 1;
ps: хотя хз сработает ли на склайте
зыы: сработает, только синтаксис другой:
Код:
ORDER BY Random()
LIMIT    1
ну и сначала выборку всей таблицы сделает, а потом из неё одиночную запись дернет, но это уже косяк лайта, так что непонятно что лучше для этой ситуации.
Изящно.
А не знаешь как сделать, что бы еще и общее количество найденных результатов выводил?
Нужно периодически чекать
 

DmitryAk

Client
Регистрация
14.12.2016
Сообщения
860
Благодарностей
818
Баллы
93
  • Спасибо
Реакции: Raids

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)