C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[4]: DataGridViewにデータが表示されない


(過去ログ 55 を表示中)

[トピック内 8 記事 (1 - 8 表示)]  << 0 >>

■30775 / inTopicNo.1)  DataGridViewにデータが表示されない
  
□投稿者/ たこやき (69回)-(2009/01/06(Tue) 14:00:53)

分類:[C#] 

C#2008
単独のテーブルを次のLINQ式で絞り込みを実施し、
DataGridViewに表示させています。
var aa =
from p in myDataSet.aaa
where p.ID == 100000
select p;
aaaBindingSource.DataSource = aa.AsDataView();
ところが、この式で絞り込めるものと、絞り込めないものがあります。
絞り込めない場合は、DataGridViewに白紙行が複数行表示されます。

  100000は一意の識別子なので、複数行表示されないはずなのですが。
  その証拠に、
  foreach(var a in aa )
     Console.WriteLine(a["ID"])
  で絞り込んだデータが正しく表示されます。

原因らしきものが思いつかないので、再現できませんが、
考えられることがわかれば、お教え下さい。

引用返信 編集キー/
■30866 / inTopicNo.2)  Re[1]: DataGridViewにデータが表示されない
□投稿者/ たこやき (70回)-(2009/01/08(Thu) 14:37:34)
DataGridViewに頼るところが多い中、
みなさんにはこのような問題、発生しませんか?
最初にBindingSourceをセットしていることから、
後から手動で行追加することができず、お手上げ状態になっています。
年明けから最悪のスタートです……
引用返信 編集キー/
■30871 / inTopicNo.3)  Re[2]: DataGridViewにデータが表示されない
□投稿者/ くだん (17回)-(2009/01/08(Thu) 14:57:11)
No30866 (たこやき さん) に返信
LINQ 使わなければ?
引用返信 編集キー/
■30895 / inTopicNo.4)  Re[3]: DataGridViewにデータが表示されない
□投稿者/ たこやき (71回)-(2009/01/08(Thu) 17:42:58)
No30871 (くだん さん) に返信
ご返信ありがとうございます。

> LINQ 使わなければ?
なるほど。
でも、現地点で、LINQ以外使えません。
やっぱりLINQエラー?? こんな初歩的なエラーがあったら、
MicroSoft、ぶんなぐってやりたい気分です。LINQを当てにして買ったものとしては。
引用返信 編集キー/
■30896 / inTopicNo.5)  Re[1]: DataGridViewにデータが表示されない
□投稿者/ みきぬ (324回)-(2009/01/08(Thu) 18:00:06)
> ところが、この式で絞り込めるものと、絞り込めないものがあります。
>
どういう場合に絞り込めて、どういう場合に絞り込めないの?
ID = 100000 だと絞り込めないってこと?

>   100000は一意の識別子なので、複数行表示されないはずなのですが。
>
ID がユニークキーという解釈であってる?

>   その証拠に、
>   foreach(var a in aa )
>      Console.WriteLine(a["ID"])
>   で絞り込んだデータが正しく表示されます。
>
これは何を確認してるの?
「絞り込めない場合は、DataGridViewに白紙行が複数行表示されます。」の状態でも「絞り込んだデータが正しく表示されます。」という意味だとしたら、LINQ は関係ないんでない?
引用返信 編集キー/
■30907 / inTopicNo.6)  Re[2]: DataGridViewにデータが表示されない
□投稿者/ たこやき (72回)-(2009/01/08(Thu) 19:09:06)
No30896 (みきぬ さん) に返信
ご返信ありがとうございます。

>>ところが、この式で絞り込めるものと、絞り込めないものがあります。
> どういう場合に絞り込めて、どういう場合に絞り込めないの?
> ID = 100000 だと絞り込めないってこと?

絞り込みに失敗するテーブルは、住所と氏名のテーブルで
住所のフィールド構成は以下の通りで、数千件入っています。
ID 郵便 県名 住所 番地 建物 TEL FAX TEL2 住所備考 旧ID

成功するテーブルのフィールドは以下の通りで、十数件データが入ってます。
ID 列1 列2 列3 …… 列20

共にデータソースにテーブルを登録して、ドラッグ&ドロップする形で
フォーム上にDataGridViewを作成しています。

その状態で、
int myID = 0; // テスト用に初期設定

myID++;
var aa =
from p1 in myDataSet.aaa
where p1.ID == myID
select p1;
aaaBindingSource.DataSource = aa.AsDataView();

var bb =
from p2 in myDataSet.住所
where p2.ID == myID
select p2;
住所BindingSource.DataSource = bb.AsDataView();

のようにしていますが、
住所の方の結果は、数行の完全な白紙行が作成されます。

しかし、
  foreach(var a in aa )
     Console.WriteLine(a["ID"] + a["住所"])
で、LINQ結果を表示させると、
IDに該当する住所が表示されます。
例えば、
 1000001 大阪市平野区……と
ですから、LINQ結果は正しく行われているものと思います。
しかし、その結果をDataGridViewに反映できないのだと思います。



引用返信 編集キー/
■30908 / inTopicNo.7)  Re[3]: DataGridViewにデータが表示されない
□投稿者/ たこやき (73回)-(2009/01/08(Thu) 19:12:49)
訂正
int myID = 1000000;  
です。
引用返信 編集キー/
■31174 / inTopicNo.8)  Re[4]: DataGridViewにデータが表示されない
□投稿者/ たこやき (74回)-(2009/01/16(Fri) 09:57:10)
経過報告

この問題はマイクロソフトのサポートサービスに依頼しました。
サンプルデータをもって現象の再現はできましたが、原因は不明とのこと。
DataGridViewにBindingする際に発生していると思われ、さらなる内部コードの調査が必要とのことで、現在、原因究明と、回避する方法の有無を模索してくれています。

まだこういった問い合わせがないとのことで、素人が好き勝手に使うと何が起こるかわかりませんね〜
でも、LINQやDataGridViewはC#2008にとって要のクラスなので、是非とも対処していただきたいです。

引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -