inohilog

/var/log/inohiro.log

ASP.NETとSQL Server

ASP.NETを初めてやる友達が研究室の在庫管理システム(いわゆる”POSシステム”)を開発しています。あまり詳しい仕様は聞いてないので分かりませんが、データはSQL Serverにつっこむようです。元々彼はプログラミングが出来るようで、PHPMySQLで同じようなシステムを作れば、すぐ作ってしまうのかもしれませんが、今回はASP.NETをやってみるということで頑張っているようです。いきなりVisual Studio からSQL Server にコード無しで接続できて、「これは卑怯」と言っていました笑。


で、問題がいくつかあって。ボタンクリックしたときに、各種データと共にボタンが押された日時を送信しようとしているのですが、うまくいかない。


例えば asp:SqlDataSource を使っている場合、InsertParameters のコレクションをいじって、WebForm 上のコントロールを割り当てるのがよくやる簡単な方法だと思いますが、Insertingイベント(Insertしようとしたときに発生するイベント)で

e.Command.Parameters("@UpdateTime").Value = System.DateTime.Now.ToString();

とかやりたいわけですよ。コントロールを割り当てる代わりに。この方法は開発生産性を向上させるASP.NET 2.0のサーバ・コントロール - VS 2005でいってみようDBプログラミング にも書いてあるような方法なんですが、これが通らないOTL。


こういうときはストアドプロシージャを作っておいて、「テーブルの中のTimestamp を更新」みたいな事をさせれば良いのかなぁ。あとはきれいじゃない方法としては、みえないLabelを作っておいて、それをパラメータに割り当てるとかすれば良いのですが。だいたい、なんで「Command.Parameters("@UpdateTime").Value」が使えないのかわからない。。。


あとSQLCLR を意識してコードを書いたことが無かったので(!)、ちょっと勉強してみようと思う。コード自体はあんまり変化しないようです。あとその友達と「C#でストアドプロシージャ」が書けるか否かの話になったのですが、どうも歯切れの悪い感じで終わってしまったので(「書ける」の意味合いが、お互い違う気がする)、勉強してもう一度話をしたい。