- - PR -
Select文を利用してDataGridにデータを表示したい
投稿者 | 投稿内容 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2005-10-21 18:06
NAL-6295です。
見落としていました。
そこが原因っぽいですね。 | ||||||||||||
|
投稿日時: 2005-10-21 18:16
Control.DataBind() は配下のコントロールの連結も行うから、もし文脈が Page であればただちに問題になるということはないと思います。
おっと、見落としてた。 ただし、DataSource が設定されていないのだとすれば(私はたまに aspx から設定するので、コードにないからといって必ずしも設定されていないとは限らない)バインドはされませんね。 [ メッセージ編集済み 編集者: にしざき 編集日時 2005-10-21 18:18 ] | ||||||||||||
|
投稿日時: 2005-10-21 18:27
みなさん、お返事ありがとうございます。
まず、ブレイクをかけて、DSの中を調べてみましたところ、全部表示できるときはデータが入っていて、SELECT文の問題の部分のところではデータが入っていませんでした。 DataBind(); ですが、見落としかもしれませんが、とある本にこれだけでいいようなことが書いてあったような気がしたので、これだけで使いましたが、NAL-6295さんがおっしゃるように、 DataGrid1.DataSource = ds; DataGrid1.DataBind(); と同じ意味で使っています。 今書き換えました。 しかし、中身は空っぽでした。 にしざきさんがおっしゃる 「もし文脈が Page であればただちに問題になるということはない」 のPageとは何のことを指しますか? 理解できなくてすみません… あと、DataSourceに設定するというのは、NAL-6295さんがおっしゃる DataGrid1.DataSource = ds; ということですか? 理解ができていなくてゴメンナサイ。。。 | ||||||||||||
|
投稿日時: 2005-10-21 18:43
ほんとだ。大昔に勉強したきりで使うことがなくて、すっかり忘れてました。すみません。m(_ _)m DataBind()はページ上の全てのバインディングを有効にするんですね。 | ||||||||||||
|
投稿日時: 2005-10-21 18:58
dsとDSが出てきますが、この辺りで混乱されていませんか?
問題が2つあるような気がします。 1.dsとDSがごっちゃになっていませんか?データグリッドのデータソースにはどちらを指定しますか? 2.dsが空ということはうまく抽出できていないってことです。まずここをクリアしましょう。ひょっとしたら違うところを見ている可能性もあるかもしれません。
Pageオブジェクトはデフォルトのオブジェクトです。 つまり、Page.DataBind()でも、単にDataBind()でも同じ意味になります。 | ||||||||||||
|
投稿日時: 2005-10-21 18:59
NAL-6295です。
ただ、
だと、データソースの設定は行われないので、
は必要ですね。 多分、ここでしょう。 | ||||||||||||
|
投稿日時: 2005-10-21 19:10
確認です。
因みにデザイン側のコードに、
と、DataSourceの記述はありますか? 指定してあれば、
は、不要ですね。 [追記] 書いてから思った。。。ソースの全容が見えないから、不要ということではないのか...誤爆 [更なる追記] プロパティビルダを使用しているのであれば、「列」の個所にて「実行時に自動的に列を作成する」としてみたらどうなるでしょう? # 自分はプロパティビルダは使わない派なので、「試しに」やってみてください # ...混乱 [ メッセージ編集済み 編集者: えんぞ@? 編集日時 2005-10-21 19:17 ] [ メッセージ編集済み 編集者: えんぞ@? 編集日時 2005-10-21 19:55 ] | ||||||||||||
|
投稿日時: 2005-10-24 10:42
はなです。
みなさん、お返事ありがとうございます。 大文字のDSは誤記でした。すみません。 そして、NAL-6295さんに言われたように、削除するポイントだったので、最初の頃に削除したので、影響は無いと思われます。 デザイン側のコードに <asp:Datagrid id="DgdList1" Runat="server" DataSource="<%# DS %>"> はありました。 DataGrid1.DataSource = ds; も私が書いたコードの中にあります。 そして、現在のコードは以下のとおりになっています。 --------------------------------------------------------------------- SqlConnection sqlcon = new SqlConnection(); sqlcon.ConnectionString = "connectionString(接続するためのストリング)"; SqlDataAdapter sqlda = new SqlDataAdapter ("SELECT * FROM tableName WHERE (a = 1) AND (b = 2) AND (c = 3) AND (d = 4)",sqlcon); sqlda.Fill(ds); DataGrid1.DataSource = userRegDS; DataGrid1.DataBind(); --------------------------------------------------------------------- そして、dsの中はやはりありません。 アダプター、コネクションストリングの使い方など、問題はありますでしょうか? SQL文は先日も書き込んだとおり、Enterprise ManagerのSQLクエリアナライザーで確認しましたが、これでselectできるのでしょうか? だんだん、私が書いてるコードの文法に自信がなくなってきました。 申し訳ありませんが、ご教授お願いいたします。 |