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

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

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

Re[7]: TableAdapter拡張をVB.NETと同じにするには?


(過去ログ 11 を表示中)

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

■2200 / inTopicNo.1)  TableAdapter拡張をVB.NETと同じにするには?
  
□投稿者/ C#恐怖症 (1回)-(2007/03/26(Mon) 06:26:43)

分類:[.NET 全般] 

現在C#2005にてDBを使用したアプリの開発をしており、TableAdapterを使用しています。

VB.NET2005を使用した場合、TableAdapterに包括されているDataAdapterのRowUpdatedイベントを
使用したい場合、パーシャルクラスにて

Partial Public Class TestTableAdapter
 Private Sub adapter_RowUpdated(<省略>) Handles _adapter.RowUpdated
  <ここに何かの処理を書く>
 End Sub
End Class

といった感じで、Handlesを使用してあげれば良いのですが、
これをC#で同じようにするにはどうしたら良いのでしょうか?

引用返信 編集キー/
■2201 / inTopicNo.2)  Re[1]: TableAdapter拡張をVB.NETと同じにするには?
□投稿者/ 未記入 (52回)-(2007/03/26(Mon) 10:10:41)
No2200 (C#恐怖症 さん) に返信
> といった感じで、Handlesを使用してあげれば良いのですが、
> これをC#で同じようにするにはどうしたら良いのでしょうか?

C#にはHandlesキーワードにあたる構文は用意されていません。
画面デザイナのイベント(雷マークの)から生成するか、手動でIniitalizeComponentにイベントを追加してください。
引用返信 編集キー/
■2213 / inTopicNo.3)  Re[2]: TableAdapter拡張をVB.NETと同じにするには?
□投稿者/ C#恐怖症 (2回)-(2007/03/26(Mon) 22:20:06)
No2201 (未記入 さん) に返信
> C#にはHandlesキーワードにあたる構文は用意されていません。
> 画面デザイナのイベント(雷マークの)から生成するか、手動でIniitalizeComponentにイベントを追加してください。

えっと、TableAdapterを編集する画面デザイナでTableAdapterが包括するDataAdapterのイベントを定義できるという事でしょうか?
また、IniitalizeComponentとはどこのIniitalizeComponentでしょうか?
DataSetのDesigner.csを探しても見つかりませんでした。
引用返信 編集キー/
■2289 / inTopicNo.4)  Re[3]: TableAdapter拡張をVB.NETと同じにするには?
□投稿者/ 刈歩 菜良 (41回)-(2007/03/30(Fri) 09:14:25)
刈歩 菜良 さんの Web サイト
> えっと、TableAdapterを編集する画面デザイナでTableAdapterが包括するDataAdapterのイベントを定義できるという事でしょうか?
> また、IniitalizeComponentとはどこのIniitalizeComponentでしょうか?
> DataSetのDesigner.csを探しても見つかりませんでした。
DataSetの定義内に書くのであれば、コンストラクタ内に書けばOKです。
# InitializeComponentはFormに書く場合ですね。

すでに、
base.Tables.CollectionChanged += schemaChangedHandler;
みたいな記述があると思いますが、これが関連付けを行っているところです。

C#恐怖症さんの場合は
_adapter.RowUpdated += new SqlRowUpdatedEventHandler(adapter_RowUpdated);
とかけばOKです(ただし、SQL Serverの場合)。

ちなみに、似たようなやり方はVBでも可能だったりします。
引用返信 編集キー/
■2307 / inTopicNo.5)  Re[4]: TableAdapter拡張をVB.NETと同じにするには?
□投稿者/ C#恐怖症 (3回)-(2007/03/31(Sat) 05:10:43)
No2289 (刈歩 菜良 さん) に返信
> DataSetの定義内に書くのであれば、コンストラクタ内に書けばOKです。
> # InitializeComponentはFormに書く場合ですね。
>
> すでに、
> base.Tables.CollectionChanged += schemaChangedHandler;
> みたいな記述があると思いますが、これが関連付けを行っているところです。
>
> C#恐怖症さんの場合は
> _adapter.RowUpdated += new SqlRowUpdatedEventHandler(adapter_RowUpdated);
> とかけばOKです(ただし、SQL Serverの場合)。
>
> ちなみに、似たようなやり方はVBでも可能だったりします。

すみません、私の質問の仕方が悪かったようです。
イベントの定義方法は分かっています。

聞きたかったのはC#でTableAdapterを使用した場合、
> _adapter.RowUpdated += new SqlRowUpdatedEventHandler(adapter_RowUpdated);
の記述を何処でするのか?と言う事です。

コンストラクタ内で書けばとの事ですが、TableAdapterのコンストラクタは
ウィザードがDataSetのDesigner.csの中で既に記述されています。
パーシャルクラスで当然コンストラクタを再度定義すれば、コンパイルエラーとなります。

引用返信 編集キー/
■2311 / inTopicNo.6)  Re[5]: TableAdapter拡張をVB.NETと同じにするには?
□投稿者/ 刈歩 菜良 (42回)-(2007/03/31(Sat) 12:45:10)
刈歩 菜良 さんの Web サイト
> コンストラクタ内で書けばとの事ですが、TableAdapterのコンストラクタは
> ウィザードがDataSetのDesigner.csの中で既に記述されています。
> パーシャルクラスで当然コンストラクタを再度定義すれば、コンパイルエラーとなります。
今のところ直に書くしかないと思います。
イベントも持ってないですしね(Disposeを除く)。

# OrcasからはPartial Methodとやらでできるようになるのかなぁ(勝手な思い込み)?
引用返信 編集キー/
■2316 / inTopicNo.7)  Re[6]: TableAdapter拡張をVB.NETと同じにするには?
□投稿者/ C#恐怖症 (4回)-(2007/03/31(Sat) 15:53:30)
No2311 (刈歩 菜良 さん) に返信
> 今のところ直に書くしかないと思います。
> イベントも持ってないですしね(Disposeを除く)。
>
> # OrcasからはPartial Methodとやらでできるようになるのかなぁ(勝手な思い込み)?

直書きというのは、DataSetのDesigner.csにって事ですよね?
でもそれだと、デザイナで編集とかすると消えたり不具合が出たりするって事ですよね…

どうもこの辺がC#を好きになれないんですよね…
元々VBすらやってないC言語とJavaの人間なのに…

とはいえ、ありがとうございました。
解決済み
引用返信 編集キー/
■2317 / inTopicNo.8)  Re[7]: TableAdapter拡張をVB.NETと同じにするには?
□投稿者/ 刈歩 菜良 (43回)-(2007/03/31(Sat) 16:21:14)
刈歩 菜良 さんの Web サイト
> 直書きというのは、DataSetのDesigner.csにって事ですよね?
> でもそれだと、デザイナで編集とかすると消えたり不具合が出たりするって事ですよね…
これはVisual Studioの仕様なので、

> どうもこの辺がC#を好きになれないんですよね…
> 元々VBすらやってないC言語とJavaの人間なのに…
には繋がらないと思いますよ。

Eclipseに文句言ってJava嫌いって言うのと同じになってしまいます。

同じような使いづらさはVS2003までのASP.NETでもありましたから、問題とあらば改善されるでしょう。
解決済み
引用返信 編集キー/


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

このトピックに書きこむ

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

管理者用

- Child Tree -