- - PR -
.NET 『DataGrid』のデータ表示ついて・・・
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2004-08-04 13:12
えムナウさんありがとうございます。
接続の設定を再度行いました。 状況は変わりませんでした。 テストも完了してました。 ですが、状況はかわりません。 いったい何がおきているのでしょうか? 「なんとなく思うところは、テーブルのマッピングはできているが、 データの取得部分の何かが欠落している」 という感じでしょうか(とても抽象的ですが・・・) もうひとつ、えムナウさんからアドバイスいただきました、 >SqlDataAdapter1.Fill のあとに DataSet1 の内容をデバッガで確認してデータが入っていないか確認は出来るでしょうか? ですが、SqlDataAdapterをNewしたときに確認しました。 結果、項目などのバインドはできているようですが、 DataSet1.tableMytable.count が 0になっていました。 この意味をまだ調べている途中ですが、データを取得しなかった ことになるのでしょうか・・・ 結局何が悪いかわからないままで・・・ | ||||
|
投稿日時: 2004-08-04 17:41
わかりました×××
お騒がせして申しわけありませんでした。 多分、これでいいと思うのですが・・・ 皆様のサンプルや、.NETの本などでは簡単に記述されていたのですが、 なんとなく、SqlConnectionクラスのOpenとCloseを実行してみました。 当初は、FILLの役目がわからずテキトーなところに記述しておりましたが、 ここでの他の方の掲示内容にOpen、Closeの適切そうな位置がわかりためしたら、 なんと、Open、Closeでした××× サーバーエクスプローラが存在しているのに、どうして?という気持ちもありますが、 SQLサーバはれっきとしたRDBですので、あたりまえですね・・・ ご意見をいただいた皆様、ありがとうございました。 解決ソース SqlConnection1.Open() <- わかってしまえば当り前、すみませんでした SqlDataAdapter1.Fill(DataSet11) SqlConnection1.Close() <- わかってしまえば当り前、すみませんでした DataGRID.DataSource = DataSet11 DataGRID.DataBind() | ||||
|
投稿日時: 2004-08-04 22:43
>SqlConnection1.Open() <- わかってしまえば当り前、すみませんでした
>SqlDataAdapter1.Fill(DataSet11) >SqlConnection1.Close() <- わかってしまえば当り前、すみませんでした 昔の動作したソースを見てみました。 Open ・ Close は不要なようですが・・・
_________________ えムナウ Microsoft MVP for Visual Developer - C#,2005/01-2007/12 えムナウのプログラミングのページ Blog1 Blog2 | ||||
|
投稿日時: 2004-08-05 00:31
SqlAdapterクラスは、Fill()メソッドを実行する際に、関連付けられたIDBConnection(この場合はSqlConection)のOpen、Closeは自動的に処理するはずです。
以下、SqlDataAdapterクラスのFillメソッドのヘルプから引用… >Fill メソッドは、SELECT ステートメントを使用して、 >データ ソースからデータを取得します。 >SELECT コマンドに関連付けられた IDbConnection オブジェクトは、 >有効なものである必要がありますが、開いている必要はありません。 >Fill を呼び出す前に IDbConnection が閉じていた場合は、接続が開かれ、 >データを取得した後で再び閉じられます。 > Fill を呼び出す前に接続が開いていた場合は、接続は開いたままになります。 なんとなくでコーディングするよりも、今一度、確証のある検証をしたほうが良いと思います。 ちなみに、「ユーザがログインできない」ってことは、DB接続時に使う接続情報が足りない(おそらくパスワード)のだと思いますが、ひょっとしたらなんらかの拍子に、接続文字列は正しくなったのではないでしょうか? 恐らく解決後のソースから、Open、Closeの処理をコメントにしても動作はするような気がします。 | ||||
|
投稿日時: 2004-08-05 15:53
えムナウさん、ZEBRAさんご意見ありがとうございます。
昨日は徹夜でこの件をやっておりましたので、果ててしまいました× さて、「Open,Closeはいらないのでは?」 というご意見ですが、 今日になってOpen、Closeをコメントにして実行したところ、 なんと、問題なく動いてしまいました。 ZEBRAさんのおっしゃる通り、なんらかの要因で接続文字列が正しくなったのであるならば どこのタイミングは悪くて、どこのタイミングは良いのか不明です。 いったい何が悪いのか・・・ プロパティ類はさわっていないので、何をしたという部分はないのですが・・・ 実行のタイミングや、SqlConnectionのインスタンスの生成のされ方か、 クラスの生成のされ方や、タイミングなんですかね? 私がソースレベルでも、SqlConnectionインスタンスのOpenとCloseを 明示的に記述したから、動作するようになったとか・・・ |