DOBON.NETプログラミング道掲示板
(現在 過去ログ4 を表示中)

[ 最新記事及び返信フォームをトピックトップへ ]

■34699 / inTopicNo.1)  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 / inTopicNo.2)  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 / inTopicNo.3)  Re[2]: order by で抽出したデータをDataTableに入れてForEachでDataRow取得した際の順番
□投稿者/ ころ助 一般人(2回)-(2021/04/28(Wed) 20:32:14)
  • アイコンありがとうございました。
    安心しました。
解決み!
引用返信 削除キー/



トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

Mode/  Pass/


- Child Tree -