Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / C# соединение с Базой .mdb и работа с Reader / 10 сообщений из 10, страница 1 из 1
26.04.2015, 16:26
    #38945539
IRagnarok
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
C# соединение с Базой .mdb и работа с Reader
Привет всем,
Гуглил, гуглил ненагуглил.
Объясняю ситуацию.

Соединяюсь с базой, создаю запрос и реадер и читаю в него итог запроса:

var Connect = new OLEDB.OleDbConnection("Data Source=\"C:\\Users\\Роман\\Desktop\\Работа\\Бурдигропроект\\БурГидроПроект.mdb\";User " + "ID=Admin;Provider=\"Microsoft.Jet.OLEDB.4.0\";");
var Command = new OLEDB.OleDbCommand();
Command.Connection = Connect;
Connect.Open();
string Zapros = "SELECT PositionCalc FROM qdfWells";
Command.CommandText = Zapros;
OLEDB.OleDbDataReader reader = Command.ExecuteReader();
reader.Read();
Всё получается хорошо, проблема получается дальше.

Я получаю записи только с одного поля, и хотел бы перебрать данные через foreach
foreach (int i in sp)
{
string coordinaty = reader[i].ToString();
}
Но, почему то перебор не начинается, и даже не выдаёт ошибку.
Пытался создать точку остановки на месте string coordinaty = reader[i].ToString(); , однако, даже до этого места не доходит, хотя я проверял, запрос возвращает запись с поля.

Вопрос: как можно перебрать все полученные данные из массива reader?
...
Рейтинг: 0 / 0
26.04.2015, 16:28
    #38945540
IRagnarok
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
C# соединение с Базой .mdb и работа с Reader
А вот если я перебираю данные вручную:
string coordinaty = reader[0].ToString();
string coordinaty1 = reader[1].ToString();
То всё читается верно и я получаю данные
...
Рейтинг: 0 / 0
26.04.2015, 19:46
    #38945619
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
C# соединение с Базой .mdb и работа с Reader
...
Рейтинг: 0 / 0
27.04.2015, 00:06
    #38945732
IRagnarok
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
C# соединение с Базой .mdb и работа с Reader
Shocker.Pro,

Привет, ну вот мы и опять встретились :D
...
Рейтинг: 0 / 0
27.04.2015, 00:20
    #38945736
bazile
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
C# соединение с Базой .mdb и работа с Reader
IRagnarok, из примера непонятно что из себя представляет переменная sp, но раз код компилируется, но не работает, то значит "коллекция" sp пустая. Если тебе необходимо перебрать все колонки в цикле, то я бы использовал FieldCount:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
using (var Connect = new OLEDB.OleDbConnection("Data Source=\"C:\\Users\\Роман\\Desktop\\Работа\\Бурдигропроект\\БурГидроПроект.mdb\";User ID=Admin;Provider=\"Microsoft.Jet.OLEDB.4.0\";"))
{
    var Command = new OLEDB.OleDbCommand("SELECT PositionCalc FROM qdfWells", Connect);
    Connect.Open();
    using (var reader = Command.ExecuteReader())
    {
        while (reader.Read())
        {
            for (int i=0; i<reader.FieldCount; i++)
            {
                string s = reader[i].ToString();
            }
        }
    }
}
...
Рейтинг: 0 / 0
27.04.2015, 02:26
    #38945741
IRagnarok
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
C# соединение с Базой .mdb и работа с Reader
bazile,

Извиняюсь, вместо sp забыл написать reader, так как я ещё пытался создавать другой массив sp и переприсваивать значения.
Попробую ваш метод и отпишу.
...
Рейтинг: 0 / 0
27.04.2015, 08:40
    #38945807
IRagnarok
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
C# соединение с Базой .mdb и работа с Reader
bazile,

Я имел ввиду перебор записей а не полей.
Я знаю, что я отобрал только одно поле.
Запросом мне пришло 3 записи, как мне их перебрать не в ручную?(допустим, я не знаю, что запросом отобрало 3 записи)
Методом .HasRows, я могу получить только bool значение о том, много ли записей или одна.
Не нашёл метода перебора и работы с записями а не с полями.
...
Рейтинг: 0 / 0
27.04.2015, 08:44
    #38945808
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
C# соединение с Базой .mdb и работа с Reader
IRagnarokbazile,

Я имел ввиду перебор записей а не полей.
Я знаю, что я отобрал только одно поле.
Запросом мне пришло 3 записи, как мне их перебрать не в ручную?(допустим, я не знаю, что запросом отобрало 3 записи)
Методом .HasRows, я могу получить только bool значение о том, много ли записей или одна.
Не нашёл метода перебора и работы с записями а не с полями.так bazile же написал как перебрать и записи и поля. Не нужно перебирать поля - ну выкинь второй цикл.
...
Рейтинг: 0 / 0
27.04.2015, 09:49
    #38945889
IRagnarok
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
C# соединение с Базой .mdb и работа с Reader
Shocker.Pro,

точно, reader.Read() и while (reader.Read()) разные вещи.
Вопрос решён и закрыт. Всем спасибо, до новых встреч.
...
Рейтинг: 0 / 0
27.04.2015, 10:38
    #38945957
Winnipuh
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
C# соединение с Базой .mdb и работа с Reader
IRagnarokShocker.Pro,

точно, reader.Read() и while (reader.Read()) разные вещи.
Вопрос решён и закрыт. Всем спасибо, до новых встреч.

заходи чуть что
...
Рейтинг: 0 / 0
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / C# соединение с Базой .mdb и работа с Reader / 10 сообщений из 10, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]