Извлечение данных SQL - C # - PullRequest
       11

Извлечение данных SQL - C #

1 голос
/ 20 декабря 2010

как получить данные из таблицы в цикле или что-то. Это означает, что я хочу получать строку за строкой за раз. но последовательность строк может отличаться. Например, 1-й раз я хочу 5-й ряд, затем 2-й, затем 9 ... и т. Д.

Я искал это через интернет. Я получил только два ответа.

  1. Используйте несколько объектов SqlConnection.

  2. reader = sqlCommand.ExecuteReader (); В то время как (reader.Read ()) { читатель ["Имя столбца"]. ToString (); }

Если у вас возникла моя проблема, пожалуйста, помогите мне Спасибо.

Ответы [ 5 ]

2 голосов
/ 20 декабря 2010

Похоже, вы должны исправить свой слой данных, чтобы вернуть значения в том порядке, в котором вы собираетесь их обрабатывать .Это было бы проще и быстрее!:)

В качестве альтернативы я бы предложил загрузить ваш результат в таблицу данных:

    DataTable table = new DataTable();
    using ( SqlCommand command = new SqlCommand() )
    {
           // TODO: Set up your command here
        using (SqlDataAdapter adapter = new SqlDataAdapter(command))
        {
            adapter.Fill(table);
        }
    }

    // Use your DataTable like this...

    if ( table.Rows.Count >= 5 ) {
        DataRow firstRow = table.Rows[0]; // #1 row
        DataRow fifthRow = table.Rows[4]; // #5 row
        DataRow secondRow = table.Rows[1]; // #2 row
    }

/ Alex

1 голос
/ 20 декабря 2010

Вероятно, лучше всего прочитать ваши данные в DataSet, как показано в этом примере:

http://quickstart.developerfusion.co.uk/quickstart/howto/doc/adoplus/GetDataFromDB.aspx

0 голосов
/ 20 декабря 2010

Чего именно вы пытаетесь достичь?Получить случайные строки из DS или у вас есть определенные критерии для выбора, какие строки вы хотите вернуть?А если так, то не могли бы вы заказать их до загрузки в ридер?

0 голосов
/ 20 декабря 2010

Я вижу два способа:

1) Получить все строки одним оператором sql, а затем получить доступ к нужной строке в памяти.

Или (из "всего" слишком многоили вам нужны последние данные)

2) Получить только нужную вам строку, и снова для следующей строки.

0 голосов
/ 20 декабря 2010

Считыватель обычно подходит, но ваш запрос (или SP) должен уже выбрать данные в том порядке, в котором вы хотите их получить.

В качестве альтернативы вы можете загрузить все в DataSet и сделать произвольный доступ к строкам в нем.

...