tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
[ツリー表示へ]  [ワード検索]  [Home]

タイトル LINQtoSQLでのSELECT順
投稿日: 2008/06/13(Fri) 11:23
投稿者ひぃ
こんにちわ。宜しくお願い致します。

現在の開発環境は、VB.NET2008+SQLServer2005です。


AccessVBAで作成されていたプログラムを、
完全新規で.NET版にシステムリプレイス中なのですが、
LINQtoSQLを利用して開発を行っております。

現在悩んでおりますのは、LINQtoSQLのSELECT順についてです。

フォーム上にDataGridViewを配置(データソース無し)し、
複数のテーブルからデータを結合、必要なデータのみをDataGridViewに表示させる。

というところまでは出来たのですが、
LINQtoSQLにて指定したSELECT順の通りにDataGridViewに表示されません。


現在のソースを抜粋致しました。

    Private Sub frmTest_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        Dim dtc = New dcMeisaiCheck

        Dim var = From SitenMei In dtc.SitenTbl, KaMei In dtc.KaTbl, test In dtc.KaTbl _
                   Where SitenMei.SitenCD = KaMei.SitenCD _
                   Order By SitenMei.SitenCD , KaMei.KaCD_
                   Select SitenMei.SitenName, SitenMei.SitenCD , KaMei.KaName, KaMei.KaCD

        Me.DataGridView1.DataSource = var

    End Sub

という感じでSELECTにて取得順序を指定していますが、
実際にフォームで表示させてみると、
SitenMei.SitenCD, SitenMei.SitenName, KaMei.KaCD, KaMei.KaName
となってしまっています。

いろいろ調べてみたのですが、
LINQtoSQLにて生成されるSQLでは指定した順序で取得してきているようです。
DataSourceに直接放り込むのが良くないのか?と思い、
ソースにてBindingSourceを用意して放り込んでみましたが、
BindingSourceに入った時点で順序がおかしくなっているようです。

※クイックウォッチで見てみると、BindingSourceの中のDataSourceの中、
 さらに結果の中の各レコードの情報が見えましたが、
 それの順序がSELECT順になっていないようです。
 (SitenMei.SitenCD, SitenMei.SitenName, KaMei.KaCD, KaMei.KaNameになっていました)

何か良い方法はないものでしょうか。。。

- 関連一覧ツリー をクリックするとツリー全体を一括表示します)

古いスレッドにレスはつけられません。