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

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

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

Re[6]: テンポラリーテーブルについて


(過去ログ 75 を表示中)

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

■44560 / inTopicNo.1)  テンポラリーテーブルについて
  
□投稿者/ 陽子 (13回)-(2009/12/11(Fri) 23:23:47)

分類:[.NET 全般] 

こんばんわ。
ストアドプロシージャでテンポラリテーブル「#勤務表」テーブルを作成したのですが、「#勤務表」をソースにデータグリッドビューを設定しようとしたら「#勤務表は無効です」エラーがでます。
テンポラリテーブルをソースにデータグリッドビューを作成するのは難しいんでしょうか?
Dim GRAdapter As SqlDataAdapter
Dim GRDataset As DataSet
Dim GRTable As DataTable
GRAdapter = New SqlDataAdapter("select * from [#勤務表]", cnKinmu)
GRDataset = New DataSet
GRAdapter.Fill(GRDataset, "#勤務表")
GRTable = GRDataset.Tables("#勤務表")
Me.データグリッドビュー.DataSource = GRTable

よろしくお願いします。
引用返信 編集キー/
■44561 / inTopicNo.2)  Re[1]: テンポラリーテーブルについて
□投稿者/ ぽぴ王子 (466回)-(2009/12/12(Sat) 07:02:29)
ぽぴ王子 さんの Web サイト
# ソースコードを載せるときは「図表モード (ソースコードを貼る場合はこちらを使用)」で。

■No44560 (陽子 さん) に返信

> テンポラリテーブルをソースにデータグリッドビューを作成するのは難しいんでしょうか?
>         Dim GRAdapter As SqlDataAdapter
>         Dim GRDataset As DataSet
>         Dim GRTable As DataTable
>         GRAdapter = New SqlDataAdapter("select * from [#勤務表]", cnKinmu)
>         GRDataset = New DataSet
>         GRAdapter.Fill(GRDataset, "#勤務表")
>         GRTable = GRDataset.Tables("#勤務表")
>         Me.データグリッドビュー.DataSource = GRTable

この場合、テンポラリテーブル云々というよりは、GRTable に入れるときに GRDataset.Tables から
"#勤務表" という名前を使って取り出しているのがマズいかもしれません。
GRDataset.Tables のコレクションの中に "#勤務表" という名前の DataTable がないのでしょうね。
簡単にやるなら GRDataset.Tables(0) としても良いかもしれません。

引用返信 編集キー/
■44563 / inTopicNo.3)  Re[2]: テンポラリーテーブルについて
□投稿者/ 陽子 (14回)-(2009/12/12(Sat) 10:39:31)
おはようございます。
以下のように書き直してみたのですが、「GRAdapter.Fill(GRDataset, 0)」でエラーが出ます。どうしてでしょう??

Dim GRAdapter As SqlDataAdapter
Dim GRDataset As DataSet
Dim GRTable As DataTable
GRAdapter = New SqlDataAdapter("select * from [#勤務表]", cnKinmu)
GRDataset = New DataSet
GRAdapter.Fill(GRDataset, 0)
GRTable = GRDataset.Tables(0)
Me.データグリッドビュー.DataSource = GRTable

引用返信 編集キー/
■44564 / inTopicNo.4)  Re[3]: テンポラリーテーブルについて
□投稿者/ オショウ (467回)-(2009/12/12(Sat) 10:53:35)
一時テーブルが作成されるタイミングとして
何時そのストアドが実行されているのでしょ
うか?

一時テーブルの有効期間がありますので、そ
のプログラムを実行している時に存在してい
るのどうか・・・

一時テーブルの仕様に関して御調べになって
いますか?

今回の『#勤務表』は、ローカル一時テーブ
ルですので、DBに接続しているセッション
内でのみ有効です。同一セッション内で、そ
のストアドを実行させて、その直後に提示さ
れているSQL文を実行されているのかどうか。

以上。
引用返信 編集キー/
■44565 / inTopicNo.5)  Re[4]: テンポラリーテーブルについて
□投稿者/ 陽子 (15回)-(2009/12/12(Sat) 14:32:22)
ストアドは私が書いたプログラムの直ぐ上で書いております。
また、コネクションは切断しておりません。
やり方としては、ストアドでローカル一時テーブルを作成する→ローカル一時テーブルにデータを入れていく→ローカル一時テーブルをデータグリッドビューに表示すると言ったロジックです。
プログラムは全てコマンドボタンクリック時に実行しております。
よろしくお願いいたします。
引用返信 編集キー/
■44566 / inTopicNo.6)  Re[5]: テンポラリーテーブルについて
□投稿者/ やじゅ (1420回)-(2009/12/12(Sat) 14:38:38)
やじゅ さんの Web サイト
No44565 (陽子 さん) に返信

一時テーブルが悪いかどうかは、試しに一時テーブルでは無く通常のテーブルで作成してみればよい。
通常のテーブルでデータグリッドビューに表示されるなら、一時テーブルの有効期間が問題と思われる。

引用返信 編集キー/
■44577 / inTopicNo.7)  Re[6]: テンポラリーテーブルについて
□投稿者/ 陽子 (16回)-(2009/12/12(Sat) 21:35:01)
みなさんありがとうございました。
できました!!
DataReaderを複数使用していて、その為、コネクションも同じデータベースに複数張っていたため、コネクションのデータグリッドビューのデータアダプタのコネクションの指定を間違っていました。
コネクション1で一時テーブルを作っていたのにコネクション2でデータグリッドビューのデータアダプタを設定していたためです。
解決済み
引用返信 編集キー/


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

このトピックに書きこむ

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

管理者用

- Child Tree -