- PR -

実例で学ぶASP.NETプログラミング 第9回で質問です

1
投稿者投稿内容
GREEN
会議室デビュー日: 2003/07/28
投稿数: 8
お住まい・勤務地: 田舎暮らし
投稿日時: 2003-09-05 11:55
はじめまして、現在C#を勉強している初心者です。
実例で学ぶASP.NETプログラミングを参考にC#に置き換えて作成しているのですが、ユーザーが買い物かごボタンを押したときの処理でつまずいています。

第9回の最後の方で
Grobal.asaxファイルのSession_Startイベントに
---------------------------------------------
UMSET USET = new UMSET();
DataView UVIEW = new DataView();
UVIEW.Table = USET.Tables["売上明細"];
Session["sbview"] = UVIEW;
---------------------------------------------
のコードを追加し
PRODET.ASPXのBAISAN_Clickイベントに
---------------------------------------------
DataRowView drv = DataView.AddNew();を元に

DataRowView drv = Session["sbview"].AddNew();
---------------------------------------------
と言うように、drvと言う新しいレコードとしてDataViewRowオブジェクトを生成したいのですが、Session["sbview"]の部分が
「System.Web.Session.State.HttpSessionState Page.Session」となりその後の.AddNew()と出来ません。

お手数ですがどなたかご教授いただけないでしょうか?
よろしくお願いいたします。

FOX
ベテラン
会議室デビュー日: 2002/04/08
投稿数: 63
お住まい・勤務地: いなか
投稿日時: 2003-09-05 12:08
こんにちは。

多分これはVB.NETとC#の大きな違いである部分でしょうね。
VB.NETは明示的なキャストを書かなくてもメソッドが定義されていれば実行できてしまいますし…。

おそらくこれでいけるんじゃないかと思います

コード:

DataRowView drv = ((DataView)Session["sbview"]).AddNew();






[ メッセージ編集済み 編集者: FOX 編集日時 2003-09-05 12:09 ]
GREEN
会議室デビュー日: 2003/07/28
投稿数: 8
お住まい・勤務地: 田舎暮らし
投稿日時: 2003-09-05 12:18
FOXさんはじめまして。
早速の返信ありがとうございます。
ご教授いただきましたソースで無事解決いたしました。
DataViewへの型キャストだったのですね。
型変換と言えば、intやstring位しかした事も無く非常に勉強になりました。
ありがとうございました。

うりゅう
大ベテラン
会議室デビュー日: 2002/06/15
投稿数: 202
お住まい・勤務地: Hiroshima
投稿日時: 2003-09-05 12:30
こんにちはー。執筆者のうりゅうです。

GREENさんご質問ありがとうございました。
そして、FOXさんご回答ありがとうございました。

もう、私はVB文化にどっぷりとはまりこんでいる方なので、
暗黙での変換がかなーり多いと思います。

自分でもたまにC#を触ると混乱してしまうほど、キャストが苦手です(笑)
そんな拙いコードが多々出てくる連載ですが、今後ともよろしくお願いします。

[ メッセージ編集済み 編集者: うりゅう 編集日時 2003-09-05 12:30 ]
GREEN
会議室デビュー日: 2003/07/28
投稿数: 8
お住まい・勤務地: 田舎暮らし
投稿日時: 2003-09-05 13:34
うりゅうさんはじめまして。

ご返信いただきましてありがとうございました。
なかなか書籍等では実際に利用できそうなサンプルにお目にかかる機械が無く(特にC#)、この連載は非常に大変参考になり毎回新しい記事が出るのを首を長くして待っています。
VBのソースをC#に変換するのは結構つまづく事が多いのですが、その度に新しい発見があったり楽しみながら勉強させて頂いております。
お忙しい時間を割いての執筆で大変でしょうが、お体に気をつけて頑張って下さい。
次回以降の連載楽しみにしていますので、今後ともよろしくお願いします。
1

スキルアップ/キャリアアップ(JOB@IT)