開発環境:MS VisualStudio 2008
MS SQLserver 2005
ASP.NETで出退勤管理システムの開発をしております。
GridViewコントロールの編集ボタンについて質問です。
GridViewコントロールの編集ボタンを利用するには、
aspxファイルのデータソースのところにUPDATEコマンドを設定するかと思うのですが、
Updatecommand="Update [timecard] Set"
+ "[DATE]=@DATE"
+ ",[SYUKKIN]=@SYUKKIN"
+ ",[TAIKIN]=@TAIKIN"
+ ",[REST]=@REST"
+ ",[ZITUDOU]=@ZITUDOU"
+ ",[S_BIKOU]=@S_BIKOU"
+ ",[T_BIKOU]=@T_BIKOU"
+ ",[SUBMIT_DATE]=@SUBMIT_DATE"
+ ", [AMEND_DATE]= <%$DateTime.Now.ToShortDateString %>" //←これ
+ " ,[ADMIT]=@ADMIT "
+ "where [NAME]=@NAME"
こんな風にAMEND_DATEには毎回、編集した時間を入れていきたいのです。
…が、実行時に「'<' 付近に不適切な構文があります」と怒られてしまいます。
<%$ ~~ %>があやしいんじゃないかなというのは思うのですが、自分ではわかりません。。
どなたかわかる方いらっしゃいましたらお教えください。
よろしくお願いします!
説明不足でしたら補足しますので、おっしゃってください。
No.2ベストアンサー
- 回答日時:
> コードを記述してるのは隠してるほう(aspx.cs)ではなくaspxファイルのほうです。
う~ん、それはまぁそうなんだろうけど、いずれにせよ、「Updatecommand="Update [timecard] Set"」ってのは「変数Updatecommandに文字列を設定する」っていう文な訳で、すなわちここが正しく実行されている(エラーが出るのだって「実行」された結果だ)時点でここ自身が既にスクリプトレットなのです。なので、HTML文書の中でスクリプトレットに切り替えるタグである「<%= %>」をここでは使ってはいけないという事。
> SQLに任せるというのはストアドプロシージャを使うということですか??
SQL Serverには、ストアドプロシージャの他に関数という機能もある。
では、osql.exeなどでSQL Serverに繋いでみましょう。そこで下のSQLを発行すると・・・・。
select GetDate()
なんと、日付(SQL Serverが実行されているマシンの現在日付)がSelectされる。これを応用すると、日付をaspx側じゃなくてSQL Server側で計算させる事ができる。詳しくはGetDateで検索すると良いでしょう。
IsNullなんかも有名な関数だ。
select IsNull(COLUMN1, 'カラム1はNullです') from TABLE1
これはCOLUMN1がNullなら後ろの文字、そうで無ければ値そのものが返るものだ。
返事が遅くなってしまい申し訳ありません。
select GetDate()で無事解決できました。
改めて自分の勉強不足を実感しました。
もっともっと知識を蓄えていこうと思います。
ありがとうございました。
No.3
- 回答日時:
日本人じゃない。
+ ", [AMEND_DATE]= <%$DateTime.Now.ToShortDateString %>" //←これ
これは以下に変換すればどうですか
+ ", [AMEND_DATE]='"+" <%$DateTime.Now.ToShortDateString %>"+"'" //←これ
No.1
- 回答日時:
ASP.NETはあんまりやった事ないからよくわかんないけど、
+ ", [AMEND_DATE]= <%$DateTime.Now.ToShortDateString %>" //←これこれって「文字列の一部」な訳でしょ? ここって・・・・なんだっけ、名前忘れた、ビヘイバー? あのー。あれ。hoge.aspxじゃなくて、hoge.aspx.csとか、後ろに隠れててコードを記述する方のファイル。なんだよね?
つまり、たとえ$を=にして<%=DateTime.Now.ToShortDateString %>としたとしても、ここでスクリプトレットが動く訳じゃないよね?
なので、
Updatecommand="Update [timecard] Set"
+ "[DATE]=@DATE"
+ ",[SYUKKIN]=@SYUKKIN"
+ ",[TAIKIN]=@TAIKIN"
+ ",[REST]=@REST"
+ ",[ZITUDOU]=@ZITUDOU"
+ ",[S_BIKOU]=@S_BIKOU"
+ ",[T_BIKOU]=@T_BIKOU"
+ ",[SUBMIT_DATE]=@SUBMIT_DATE"
+ ", [AMEND_DATE]=" + DateTime.Now.ToShortDateString //←これ
+ " ,[ADMIT]=@ADMIT "
+ "where [NAME]=@NAME"
ってやってやるとどうでしょうかね。「DateTime.Now.ToShortDateStringが実行された結果の文字列」を結合してあげるわけ。
こういうのを固定でやる場合はSQLに任せる方が良いと個人的には思うけど。SQL Serverは忘れたけど、Oracleで言うところの「[AMEND_DATE=Sysdate」。
返信遅くなり申し訳ありません。回答ありがとうございます。
コードを記述してるのは隠してるほう(aspx.cs)ではなくaspxファイルのほうです。
ですので<%= %>が必要なのかなと思ったわけです。
aspx.csに記述するとしたらどのメソッドの中に記述すればいいかわからないですし。。
>>こういうのを固定でやる場合はSQLに任せる方が良いと個人的には思うけど
これはどういう意味でしょうか??SQLに任せるというのはストアドプロシージャを使うということですか??
データベースに関する知識がないのは痛いほどわかっておりますが、
どうしても早い段階で完成させたいのでどうかよろしくお願いします。。
返信お待ちしております。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- UNIX・Linux cronの@rebootでのdateコマンドの実行につきまして 2 2023/06/11 16:23
- CGI perlで書いたcgiでsqliteの使い方を教えてください 2 2023/05/08 21:29
- JavaScript gasについて 1 2022/05/31 21:51
- Visual Basic(VBA) 【VBA】先月分の取得ができない理由が分かりません。 2 2022/04/24 11:16
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/04/17 13:07
- UNIX・Linux Linuxのシェル関数を作成して要件を満たす方法 1 2022/11/19 20:33
- 英語 to date 2 2023/05/23 23:22
- MySQL UPDATE my_items SET item_name '赤い,甘い,ケーキ' WHERE id 1 2023/01/03 09:52
- その他(プログラミング・Web制作) python 気象データの取得 2 2023/06/20 23:54
- PHP プログラムコードを入力する場合改行してもいいですか? 2 2022/10/02 16:05
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
コマンドプロンプトのエラーに...
-
「読み取りと実行」と「読み取...
-
バッチファイルの内容を表示さ...
-
exeファイルを実行するとコマン...
-
[teraterm] waitコマンドで停止...
-
VBscriptが起動しない?
-
バッチファイルが不正終了して...
-
VBScriptでコマンドプロンプト...
-
エクセル フォルダの画像を画...
-
バッチで実行するVBScriptから...
-
Access の VBA 実行中に他の操...
-
Excel(エクセル) VBA プロシー...
-
VBS実行時にコマンドプロンプト...
-
これってパソコンの最適化が完...
-
batからexeを実行し戻り値を受...
-
VBScriptでSQLファイルの実行
-
シェルで5分前の時間を取得したい
-
Excel VBA ステップインが途中...
-
VScodeのエラー解決法 Pythonの...
-
VB.NETでのDOSコマンドを実行に...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
コマンドプロンプトのエラーに...
-
exeファイルを実行するとコマン...
-
「読み取りと実行」と「読み取...
-
VBscriptが起動しない?
-
バッチファイルの内容を表示さ...
-
Excel VBA ステップインが途中...
-
[teraterm] waitコマンドで停止...
-
エクセル フォルダの画像を画...
-
ネットワーク名が見つかりません
-
VB.NETでのDOSコマンドを実行に...
-
Excel(エクセル) VBA プロシー...
-
複数のbatファイルを自動実行し...
-
Excelのセルの内容をコマンドプ...
-
PDFファイルを開き、印刷し、閉...
-
Access の VBA 実行中に他の操...
-
これってパソコンの最適化が完...
-
バッチファイルが不正終了して...
-
VBA 既に開いているBookに継続...
-
VScodeのエラー解決法 Pythonの...
-
【VB.NET】exeを実行すると「発...
おすすめ情報