タイトル : 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になっていました) 何か良い方法はないものでしょうか。。。 |