DOBON.NETプログラミング道掲示板

■34699 / 親記事)  order by で抽出したデータをDataTableに入れてForEachでDataRow取得した際の順番
  
□投稿者/ ころ助 一般人(1回)-(2021/04/25(Sun) 16:15:44)
  • アイコン環境/言語:[VB2017 SQLServer2016] 
    分類:[.NET] 


    ちょっと細かいところは省略してしまっていますが、

    Dim sql As String = "select * from tableName1 order by columnName1"
    adapter = New SqlDataAdapter()
    adapter.SelectCommand = New SqlCommand(sql, connection)
    adapter.Fill(ds)
    For Each row As DataRow In ds.Tabels(0).Rows
    Console.WriteLine(row("columnName1").ToString)
    Next

    のような感じで、テーブルからデータを抽出(order byでソート)していて
    それをFillメソッドでDataSetにセットしています。
    そのDataTableの行をForEachで1レコードずつ処理しているのですが、
    ちょっと疑問に思いましたので、質問させてください。

    今のところ、問題なく動いてそうなので、問題ないとは思うのですが、
    ForEachで取得した行はソートされた順番で取得される
    という事は保証されているのでしょうか?

    仮に、order by でソートした順番で 行(row)が取得できない
    という事はありえるのでしょうか?
    順番に処理したい場合、この書き方で問題ないでしょうか?


マルチポストを報告
違反を報告
引用返信 削除キー/
■34700 / ResNo.1)  Re[1]: order by で抽出したデータをDataTableに入れてForEachでDataRow取得した際の順番
□投稿者/ shu 大御所(493回)-(2021/04/26(Mon) 12:29:24)
  • アイコンNo34699に返信(ころ助さんの記事)

    > For Each row As DataRow In ds.Tabels(0).Rows
    ds.Tabels(0).Rows
    としている分には問題ないです。
    ds.Tables(0).Select("条件","並び順")
    をおこなった場合は第2パラメータを省略せず並び順を
    指定した方が無難です。
違反を報告
引用返信 削除キー/
■34705 / ResNo.2)  Re[2]: order by で抽出したデータをDataTableに入れてForEachでDataRow取得した際の順番
□投稿者/ ころ助 一般人(2回)-(2021/04/28(Wed) 20:32:14)
  • アイコンありがとうございました。
    安心しました。
解決み!
違反を報告
引用返信 削除キー/



スレッド内ページ移動 / << 0 >>

このスレッドに書きこむ

Mode/  Pass/


- Child Tree -