すいません、VB4しかやってないんです、VBAはやったけど(ぼそ) チラシの裏だって立派な書き込み空間なんだからねっ!資源の有効活用なんだからねっ!とか偉そうに言ってるけど、実は色々と書き残したいだけ

だからなに? どうしろと? くるみサイズの脳みそしかないあやしいジャンガリアンベムスターがさすらう贖罪蹂躙(ゴシックペナルティ)

ホーム 連絡をする 同期する ( RSS 2.0 ) Login
投稿数  632  : 記事  35  : コメント  11686  : トラックバック  143

ニュース


片桐 継 は
こんなやつ

かたぎり つぐ ってよむの

大阪生まれ河内育ちなんだけど
関東に住みついちゃったの
和装着付師だったりするの
エセモノカキやってたりするの
VBが得意だったりするの
SQL文が大好きだったりするの
囲碁修行中だったりするの
ボトゲ好きだったりするの
F#かわいいよF#

正体は会った人だけ知ってるの

空気読まなくてごめんなさいなの


わんくまリンク

C#, VB.NET 掲示板
C# VB.NET掲示板

わんくま同盟
わんくま同盟Blog


WindowsでGo言語
WindowsでGo言語


ネット活動


SNSは疲れました

記事カテゴリ

書庫

日記カテゴリ

ギャラリ

イベント活動

プログラムの活動

さて、では作ってみるかと、いじってて感動。ASP.NETのDataGridとLINQが出会うとここまでやるかという恐ろしくコードレスな世界が展開できるらしいです。

まずは、DBML、LINQtoSQLのオブジェクトを作ります。データベースはポケモン不思議のダンジョン依頼リストサイト化計画のものです。

image

で、ここから取ってくるデータを想定して、DataGridをデザインします。RANK(依頼ランク)、DNGN(ダンジョン)、RWD(報酬)、PWD(パスワード)のそれぞれをBoundFieldにセット。この辺りはVisualStadio2005とそんなに変わってないかなぁと。

image

さぁここからだ。このDataGridへのバインドなんだけど、LINQが返すオブジェクトをそのまま割り当てても動くんです。つまり、SELECT結果そのままバインドしちゃうと、たった3行で一覧画面の出来上がりです。

        Dim pMContext As nListDataContext = New nListDataContext
        Gd.DataSource = From L In pMContext.pMission _
                       Select _
                        DNGN = L.dMaster.DNAME & "(" & L.FLR & "F)", _
                        RANK = L.RNK & "(" & L.LVL & ")", _
                        RWD = L.RWRD, _
                        PWD = L.PWD1 & " " & L.PWD2 & " " & L.PWD3 & " " & L.PWD4 & " " & L.PWD5 & " " & L.PWD6
 
        Gd.DataBind()

コツは、列名のコンテキストをきちんと決めて割り当てておくところ。BoundFieldではフォーマット関数も用意されているのでこれを使ってGrid表示時に整形してしまうのもありですけれど、今回は複数の列をあわせて一列にしてるのでこのSQL文?で。それにしても……LINQおそるべし(笑) 

image

うおー、表示できてるよ。おー、まじっすか?(かんどー)


囚人さんから教えていただいて、LINQDataSourceを使ってみてさらに感動!
ただ、ちょっと「?」とおもったのが、

  • あるテーブルAから生成したFormView内に新しいコントロール(コンボボックスとか)を配置
  • 新しいコントロールに対して、LINQDataSourceでテーブルBを割り当てようとする
  • LINQDataSource生成ウィザードでテーブル選択しても、必ずテーブルAを選択したことになって処理が継続する
  • SQLDataSourceだとウィザードでテーブルBを選択してそのままテーブルBの列を選択できるようになる

これってフィードバック?(やったことが無いので判らないらしい)

投稿日時 : 2007年9月29日 1:46

コメント

# re: こんだけでいいの? LINQってすげーっ! 2007/09/29 1:56 囚人
LinqDataSource コントロールを使えばもっとチョーかんどーですよ。

# re: こんだけでいいの? LINQってすげーっ! 2007/09/29 2:36 片桐
囚人さん

実は、さっき、LinqDataSourceに気づきました(ぉ)
いやーまじ、すごいっす。
簡単なビューとかからのデータ表示、コードレスなんですね


Post Feedback

タイトル
名前
Url:
コメント