- - PR -
.NET 『DataGrid』のデータ表示ついて・・・
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2004-08-04 01:48
初めて記述します。よろしくお願いします。
.NET超初心者で、開発などしております。 SQLサーバからデータを取りたくて、DBGridを利用しようと決めたのですが いっこうにデータの表示にこぎつけません。 専門のソフト開発者ではないもので、どうしたものか頭を抱えている次第です。 状況としては、テーブルのカラムだけ表示されて、データ行が表示されません(涙) ここのBBSを拝見して、sqlDataAdapter、SqlConnection、DataSetを使うところまで わかり、 SqlDataAdapter1.Fill(DataSet1) DataGrid1.DataSource = Dataset1 DataGrid1.DataBind() と、WebFormに配置したボタンのクリックイベントで表示させようとしました。 が、カラムだけ表示されて、データ行が表示されません。 ちなみに、SqlDataAdaputerは、自前でNewして使いました。 なぜかツールから作成したオブジェクトだと、「ユーザログインできませんでした」 などとわからぬことを言ってくれます。 カラム(列)だけ表示してくれているので、データ表示もあと一歩と信じているのですが・・・ どうぞ、度素人に救いの手を・・・ よろしくお願いします。 | ||||
|
投稿日時: 2004-08-04 08:55
SqlDataAdapterで指定したSQL(SqlDataAdapter#SelectCommand ?)では、一件もデータを抽出することができないだけ
ってことはまず無いか...。 | ||||
|
投稿日時: 2004-08-04 09:12
肝心のSQLを入れずにDataBindしている・・・わけないですよね。
とりあえず、SQL単体で実行してみてデータが取れるかどうか確認してみてください。 (SQLServerならクエリアナライザ、OracleならSQLPlusでSQLの実行が可能です) #もし確認済みでしたら、最初にその旨も伝えておくと良いですよ。 あと、質問の際には開発環境も提示してくださいね。 (.NET開発環境、DB環境etc) 追記:見逃していましたが、
「専門のソフト開発者」って??? _________________ 雑談のNUSHI [ メッセージ編集済み 編集者: まゆりん 編集日時 2004-08-04 09:15 ] | ||||
|
投稿日時: 2004-08-04 09:19
かずくんさん、レスありがとうございます。
SqlAdapterのSQLは、設定しています。 とういうか、投稿させていただきました内容でも記述しましたが、 Newしています。 そのときのコンストラクタ引数に、 dim SqlDapt = new System.Data.SqlClient.SqlDataAdapter("SELECT item1, item2 FROM mytable", "connection string(DB接続という意味です)") とやっています。 同じ構成にし、ウィザードで作成したSqlDataAdapterの「データのプレビュー」を 行うとテスト用に登録した1件だけのデータが表示されます。 しかし、DataGridには表示されません。 あと、追記なのですが、ウィザードを利用してDataWebFormを作成しました。 ウィザードを利用していく途中DataSetオブジェクトを作成するのですが、 そこではSqlDataAdapterを作成しないのですね。 ウィザードで作成したDataWebFormには、ボタンがありそのクリックイベントで データ抽出を行うようなのですが、そこでもテーブルの項目だけが表示され データが表示されないのです××× ここまで一貫して同じ現象だと、自分の設定ミスか確認してしまうのですが、 ウィザードをつかっているのに・・・ 同じようなことになってしまった方はいらっしゃらないのでしょうか? | ||||
|
投稿日時: 2004-08-04 09:33
まゆりんさんありがとうございます。
SQLは入れています。 あと、環境ですね。 Win2000、.NET の VBで開発してます。 これはですね、 >専門のソフト開発者ではないもので、どうしたものか頭を抱えている次第です 「コンピュータの会社で専門に開発しているものではないので、経験値がなくて・・・」 という意味でとらえてください。 お願いします。 | ||||
|
投稿日時: 2004-08-04 09:47
>ちなみに、SqlDataAdaputerは、自前でNewして使いました。
>なぜかツールから作成したオブジェクトだと、「ユーザログインできませんでした」 >などとわからぬことを言ってくれます。 接続回りに問題があるきがしています。 >同じ構成にし、ウィザードで作成したSqlDataAdapterの「データのプレビュー」を >行うとテスト用に登録した1件だけのデータが表示されます。 なるべくこのウィザードで作成したSqlDataAdapterを使ってください。 データのプレビューが成功した SqlDataAdapter を使うとどんな問題があるのでしょうか? >カラム(列)だけ表示してくれているので、データ表示もあと一歩と信じているのです>が・・・ データセットの定義が正しいだけです。 以前にウィザードで作成した状態で残っているのでしょう。 データセットDataSet1の作成方法を教えて下さい。 SqlDataAdapter1.Fill(DataSet1,"mytable") の方が良いでしょう SqlDataAdapter1.Fill のあとに DataSet1 の内容をデバッガで確認してデータが入っていないか確認は出来るでしょうか? _________________ えムナウ Microsoft MVP for Visual Developer - C#,2005/01-2007/12 えムナウのプログラミングのページ Blog1 Blog2 | ||||
|
投稿日時: 2004-08-04 10:22
えムナウさんありがとうございます。
すべての、コネクション、アダプター、データセットを削除して 再度トライしました。 トライしたときの私のやり方を記述してみました。 SqlAdapter、SqlConnectionのデータの作成方法: ・WebFormに DataGridを作成。 ・サーバーエクスプローラから、対象のテーブルをWebFormへドラック&ドロップ。 ・SqlConnection1、SqlDataAdapter1が自動的に作成される。 DataSetの作成方法: ・ 画面上(Visual Studioというのでしょうか)で、上記SqlDataApter1を選択し、 プロパティを表示する。 ・ プロパティ画面の「データセットの生成...」を押す ・ 新規作成で、「DataSet1」を作成するようになり、OKを押す ・ 画面上に「DataSet1」が作成される ソースコードで、 SqlDataAdapter1.Fill(DataSet11) DataGRID.DataSource = DataSet11 DataGRID.DataBind() と記述するが、 行 370: SqlDataAdapter1.Fill(DataSet11) 「ユーザー 'sa' はログインできませんでした。 説明 : 現在の Web 要求を実行中に、ハンドルされていない例外が発生しました。エラーに関する詳細および例外の発生場所については、スタック トレースを参照してください。 例外の詳細: System.Data.SqlClient.SqlException: ユーザー 'sa' はログインできませんでした。」 という感じでエラーになります。 ですので、ここでエラーになるのでFill()後のデータの値を確認するのは今のところ無理です。 で、SqlDataAdapter1のデータプレビューでデータを抽出できるか確認すると、 なぜかできるのです××× どこが問題かおわかりになりますでしょうか? | ||||
|
投稿日時: 2004-08-04 11:09
セキュリティの問題上そんなことはしてはいけないとの意見が出てくるはずの案ですが、この場合は我慢してもらって。
サーバーエクスプローラの接続を作り直して、 特定のユーザー名とパスワードを使用する。 パスワードを保存する。 で接続のテストをきちんとやってください。 SqlAdapter、SqlConnection作成時にも聞いてきたら パスワードを保存する。 で作成してください。 _________________ えムナウ Microsoft MVP for Visual Developer - C#,2005/01-2007/12 えムナウのプログラミングのページ Blog1 Blog2 |