【質問】ASP.NETスレ Part6【雑談】
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2009/09/01(火) 20:06:04ID:???Microsoft .NET Frameworkの一連のテクノロジの一つです。
技術の移り変わりの早い分野ですので、みんなで質問、相談しつつ、より理解を深めていきましょう。
●ASP.NET関連サイト
マイクロソフトASP.NETデベロッパーセンター
http://msdn.microsoft.com/ja-jp/asp.net/default.aspx
ASP.NETオフィシャル(英語)
http://www.asp.net/
VisualStudioホームページ
http://www.microsoft.com/japan/msdn/vstudio/
SQLServerホーム
http://www.microsoft.com/japan/sqlserver/2005/default.mspx
IISオフィシャル(英語)
http://www.iis.net/
ASP.NETにAJAX技術を取り入れるASP>NET AJAX(英語)
http://www.asp.net/ajax/
ASP.NETにMVCアーキテクチャを取り入れるASP.NET MVC(英語)
http://www.asp.net/mvc/
ASP.NETでのお役立ちの定番サイト
http://www.atmarkit.co.jp/channel/aspnet/aspnet.html
●前スレ
【質問】ASP.NETスレ Part5【議論】
http://pc11.2ch.net/test/read.cgi/php/1232671611/
0349nobodyさん
2009/10/19(月) 22:53:19ID:???あと何時間か定期的に確認すんだろ?がんばってな。
0350nobodyさん
2009/10/19(月) 22:53:20ID:???0351nobodyさん
2009/10/19(月) 22:54:41ID:???このパターンにビンゴだな
0354nobodyさん
2009/10/20(火) 08:06:50ID:???0355nobodyさん
2009/10/20(火) 19:57:52ID:???技術力の無い住人は、粘着キモ馬鹿だから、すぐに釣れそうだけど。藁
0356nobodyさん
2009/10/20(火) 23:20:32ID:???その画像を一定期間IISでキャッシュしています。
それなりの大きさの画像なのでメモリ上にキャッシュせずに
ディスク上にキャッシュしているのですが、
古くなったキャッシュを削除するにはどうしたらいいでしょうか?
IISの起動・停止時にキャッシュの全削除、定期的に古いキャッシュの削除
をやりたいです。
0358nobodyさん
2009/10/21(水) 16:17:47ID:???IISの起動と終了時に、外部のプログラムを実行することなんてできるのかな?
Application_Start、Application_Endイベントじゃ駄目か?
0360nobodyさん
2009/10/21(水) 19:18:05ID:???キャッシュを削除するとかは、サービス起動時に行いたいはずだから、
駄目といえば駄目なのかもしれない。
0361nobodyさん
2009/10/21(水) 19:28:15ID:???任意のIIS再起動時にもやりたいならそのときの作業に削除処理を組み込めばいいと思う
0362nobodyさん
2009/10/21(水) 19:30:10ID:???0363nobodyさん
2009/10/21(水) 19:42:42ID:???仕様次第だけど、OSの起動とIISの起動は別の場合があるからなぁ
>>362
それだと見逃す可能性もあるよね?
0364nobodyさん
2009/10/21(水) 19:53:20ID:???0366nobodyさん
2009/10/21(水) 20:39:59ID:???オートスタートするASP.NETアプリケーション(VS 2010&.NET 4シリーズ) − @IT
http://www.atmarkit.co.jp/fdotnet/scottgublog/20090924autostart/autostart.html
0368nobodyさん
2009/10/26(月) 18:44:39ID:???<% for (int i=0; i<3; i++) %>
<% { %>
<asp:Button ID="???" runat="server"/>
<% } %>
連番でも良いのですがどのように付ければ良いのでしょうか?無理なのでしょうか・・・。
0370nobodyさん
2009/10/26(月) 18:58:13ID:???別の人が書いたコードを改造しているのですが、コードの修正規模を最小にしたいためです。
簡単にIDを設定する方法がないようであれば、書き直しも検討しなければなりませんができれば避けたいと考えています。
0372nobodyさん
2009/10/26(月) 22:22:51ID:???>コードの修正規模を最小にしたいためです。
その発想やめた方がいいよ…いやマジで。書き直した方がいいと思う。
変なソースを保守するのは大変だと思うけどさ。
0373nobodyさん
2009/10/26(月) 22:30:27ID:???0374nobodyさん
2009/10/26(月) 22:46:04ID:???頭の中がPHPになっているものですから切り替えが必要ですね。うーん、頑張ります。
0375nobodyさん
2009/10/26(月) 23:26:27ID:???タグでコントロールを作成っていう意味がわからない…。
ともかく、普通にButtonをNewしてRenderControlすればいいんじゃないの?
idはサーバー側で自動で割り振ってくれたと思うけど。ctl00_xxxみたいな連番で。
0377nobodyさん
2009/10/27(火) 02:04:17ID:JPv1u5Ye意味不明ですみません。「タグでコントロールを作成」というのはButton btn = new Button()
と書くのではなくて<asp:Button runat='server'/>とaspタグを使うことを意味していました。
以下のような構造の時に動的に作成されるDropDownListにユニークなIDを割り当てたいのです。
これは後からDropDownListに追加するListItemを制御したり、DropDownListの初期値を制御
したいためです。
<% for (int i=0; i<Hoge1.Count; i++) %>
<% { %>
複雑な構造のHTML(1)
<% for (int j=0; j<Hoge2.Count; j++) %>
<% { %>
複雑な構造のHTML(2)
<asp:DropDownList ID="???" runat="server" />
複雑な構造のHTML(3)
<% } %>
複雑な構造のHTML(4)
<% } %>
このようなケースでは一般的にどのようにすべきなのでしょうか?
ID="ddl<%# Eval(i * Hoge1.Count + j)%>"のような表記が可能なのかと推測したのですが当然
ダメでした…。
0378nobodyさん
2009/10/27(火) 06:04:38ID:???よく認証画面などで見かける、数字の画像をランダムに
生成する機能は、何を使えば実現できますか?
フリーウェアでそういった機能のはありますか?
0379nobodyさん
2009/10/27(火) 08:21:03ID:???そもそもの作りが糞。
一般的にはRepeaterやListView等のコントロールのTemplateを使用します。
10年位前の無印ASPなやり方な上に
わざわざサーバーコントロールを使うことで縛りを設けているマゾ仕様。
とりあえずID云々の前に各コントロールへの参照が取れないんだから、
一般的な解決策はほぼ絶望じゃないかな。
>>378
Captchaじゃなかったっけ?
0380nobodyさん
2009/10/27(火) 08:42:02ID:JPv1u5Yeご回答ありがとうございます。了解しました。IDについてはあきらめようと思います。
それにRepeaterやTemplate等の代替え手段を教えていただいたのは非常に助かります。
これから勉強してみて書き換えたいと思います。ありがとうございました。
0381nobodyさん
2009/10/27(火) 08:47:17ID:???それでも出来たと思うよ。
<%#(i * hoge1.coint + j).ToString() %>
とか文字列にする必要があったような。ひょっとしたら#いらないかも。
ただ、ASP.NETはそんなやり方はしないので、
「ASP.NET コントロール 動的生成」あたりでググって調べてみるといいと思う。
たぶんaspxファイルにはPanelやPlaceHolderなどのコントロールだけ配置して
コードビハインドのメソッド内でfor文でコントロールのインスタンスを動的に生成して、
Panelに生成したコントロールをaddしていく形になると思う。
0382nobodyさん
2009/10/27(火) 08:54:35ID:???実行時バインドなんてほとんど使わないから忘れた。
出先なので自分のソースも調べらんないし、そのへん調べてみて。
0383nobodyさん
2009/10/27(火) 09:06:08ID:JPv1u5Ye具体的なやり方まで教えていただきありがとうございます。作りは悪いのはわかっていても
応急手段でIDの取得ができると本当に助かるのです。今は試せる環境にいないのですが、午
後からでもトライしてみます!
それでもいつかはやはり作り直しが必要だということは認識できました。
0384382
2009/10/27(火) 11:40:35ID:???飯食ってからだけど
0385nobodyさん
2009/10/27(火) 11:46:11ID:???上のページャーとヘッダの境界の色を変更したいのですがうまくいきません。
どのbordercolorを変更すれば良いのでしょうか?
0386nobodyさん
2009/10/27(火) 12:48:40ID:???あれごめん。
今試した範囲だとIDはやっぱり実行時バインドで設定できないみたいだ。
自分の勘違いだったっぽい。
>>385
GridViewのヘッダを表示してる<tr>要素に対してと、Pagerを表示している<tr>要素にしか
スタイルシートを設定できないので、その範囲で設定するしかないんじゃないかな。
ただPagerにスタイルシート適用すると上下両方とも反映されてしまうので、
上下対称に設定したいのなら、ヘッダの上のラインとフッタの下のラインに対して
スタイルシートを適用すると擬似的に境界の色は変えられると思う。
0387385
2009/10/27(火) 13:43:44ID:???…よく分かりません
現状はこんな感じなんですが…
http://www.dotup.org/uploda/www.dotup.org308580.jpg
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataSourceID="SqlDataSource1"
style = "text-align:center" HorizontalAlign="Left" AllowPaging="True"
BorderColor="Black" AllowSorting="True" Font-Size="Small" PageSize="15" >
(ry)
<Columns >
<asp:TemplateField HeaderText="flag">
<asp:BoundField DataField="hinban" HeaderText="品番" SortExpression="hinban" >
<HeaderStyle BorderColor="Black" />
<ItemStyle BorderColor="Black" />
</asp:BoundField>
GridView.PagerStyleプロパティで変更出来るんじゃね
0389nobodyさん
2009/10/27(火) 14:29:34ID:???PagerStyleでやると、上下に配置したのにラインがでちゃう。つまり
PagerStyle
<LINE1>
Grid
<LINE2>
PagerStyle
<LINE3>
PageStyleで下線を付けて<LINE1>を書こうとすると、<LINE3>にも予期しない下線が書かれちゃう。
本当はGridとの境の<LINE2>に線を引きたいはずの場合が多いのに。
>>387
ちょっと試してみるよ
0390nobodyさん
2009/10/27(火) 14:40:57ID:???<style type="text/css">
<!--
tr.test { border-top-color:#00CC00;border-style:Solid; }
-->
</style>
HeaderStyleのCssClassに対してtestを設定するとか。
そうすると境界線のラインだけ色を変更するなり、太さを変更するなりできる。
根本的に別のラインを作りたいとかだと、自分でテンプレートをいじるなりしないといけないと思う。
0392nobodyさん
2009/10/27(火) 15:41:47ID:???htmlと一緒に動的にコントロールを生成して貼り付けていくしかないと思うな
このあたりが役立つんじゃないか?
http://www.atmarkit.co.jp/fdotnet/index/bbs/dir173.html
http://www.atmarkit.co.jp/fdotnet/index/bbs/dir175.html
http://www.atmarkit.co.jp/fdotnet/index/bbs/dir51.html
0393nobodyさん
2009/10/27(火) 16:45:14ID:???サーバコントロールじゃない普通のHTML要素なら、
id="ddl<% Response.Write(なんちゃら)%>"でできる
id="ddl<%= なんちゃら %>でも上と同じ意味
今どうなってるかわからんが、
サーバコントロールにする必要あるのか?
あるいは、ほんとに個別のIDが必要なのか?
個別のID振ったとしても、ページでコントロール生成したら、
実際にインスタンスが生成されるのはHTMLのレンダリング時だから
そのコントロールを操作するタイミングが無いぞ
0394nobodyさん
2009/10/27(火) 21:17:37ID:???あれはCAPTCHAっていう。
フリーで使えるのはここ。
http://www.mondor.org/captcha.aspx
0395nobodyさん
2009/10/27(火) 22:25:07ID:???文字列をランダムに生成→その文字をbitmapなりで画像にしてランダムに歪ませる→画像として表示
なんてことやってんのかな?
0396nobodyさん
2009/10/27(火) 23:28:31ID:???スパムする方もCAPTCHA破りの画像認識ツールを使っているそうで、
それなりなアルゴリズムを要するんだってさ。
で、そのアルゴリズムが公開されたら、スパマーもそれに対抗して(ry
0397nobodyさん
2009/10/27(火) 23:33:19ID:???ありがとうございます。あれはCAPTCHAっていうんですね。
自分のサイトで、スクリプトで大量アカウントを作成される可能性
を減らしたかったのです。
ちなみに、中国のサイトで、漢字(簡体字)版のCAPTCHAを見たことがあります。
ピンインがわからないと文字を入力できないというだけでもつらいのに、
文字が歪んでいるから、元の漢字すらわからない。
日本人の自分ですら入力できないのだから、非漢字言語圏の人
にはお手上げだろうなぁ。
漢字版は、国外からのアクセスを禁止したい場合にはいいかもw
>>395
上のサイトみると、ノイズのレベルを調整したりフォントも変更できる
ようで、歪み自体は完全ランダムではないみたい。(文字列は長さを
指定した上でのランダム文字列)
0398nobodyさん
2009/10/27(火) 23:47:15ID:???どうせデータの仕事だろうけどw
0399nobodyさん
2009/10/28(水) 00:31:33ID:???NTT-MEかもしれんぞ。
MEなら一度下請けしたことあるけど、うーん、・・・
0400nobodyさん
2009/11/03(火) 14:22:11ID:???Web アプリケーションでは使えるのですが。
0401nobodyさん
2009/11/16(月) 13:33:42ID:???3MB位のオブジェクトを突っ込んでもいいんだろうか。
ちなみに同時アクセスは10人程度を想定。無論、InProcで動かしてる前提で。
0402nobodyさん
2009/11/17(火) 14:55:18ID:???0403sage
2009/11/18(水) 12:47:49ID:???全然理解して無い無能が無理して回答しなくて言いと思うんだ。
柔らかい言い方すると、馬鹿は黙ってすっこんでろ池沼。
>>401
100KB以下に抑えるべし。
じゃないとページ開く度に負荷がかかる。3MBとかならSession情報をDBに突っ込む事も
考えたほうがいい。
0405nobodyさん
2009/11/18(水) 13:16:28ID:???余計に負荷がかかるんじゃないか?
InProcで問題ないなら、同時使用人数が10人で3Mぐらいなら、
今のサーバなら十分じゃね?
やったことないから適当ぶっこいてるけど。
0406nobodyさん
2009/11/18(水) 15:55:22ID:???あとページの負荷って、セッションをDBにいれると、DBアクセスの
オーバーヘッド分だけ負荷は増えるんだぜ
>>402はまったく間違えてはいないが、問題は適切な廃棄が難しい
セッションの廃棄はほとんどタイムアウトでしか不可能だから
同時アクセス10人ってのが、同時リクエスト10人なら
1リクエスト1秒でも10分で6000アクセスだぜ
これが全部別セッションで3M使ったらメモリ持たんわな
セッションが一つなら、3Mだろうが10Mだろうが平気だがな
結局のとこ
セッションサイズは小さければ小さいほどいい
実際の限界はマシンスペックと処理するリクエスト数による
っていう、なんの参考にもならん回答に落ち着くわけですわ
0408nobodyさん
2009/11/18(水) 16:14:44ID:???0409nobodyさん
2009/11/18(水) 17:20:35ID:???と、ふわっと書いてあります。
0410nobodyさん
2009/11/18(水) 17:45:05ID:???メモリ空間は16ビットなのでメモリの消費には絶えず気をつけろって書いてある
0411nobodyさん
2009/11/18(水) 18:22:50ID:???その記述がどこにあるのか正確な所がわからんが、
数百キロで注意なら、百キロなら平気だと取れなくもない
.NETエンタープライズWEBアプリケーション開発技術大全Vol.3では、
100K以下を指標としているが、その脚注に、「実際の上限はシステム構成によって変わるため
最終的にはパフォーマンステストを実施して決定することを推奨する」とある
Iただし、この本ではInProcモードは推奨してない。そしてInProc以外ではセッションの
シリアライズ等に要する時間が無視できないほど大きくなる、とある
さらに、この本は.NET1.1時代の本だから、今の環境にそのままあてはまるとは言えない
まあ、結局のとこテストして様子見てみろ、としか言えない
ただ、InProcからそれ以外に変更すると、InProcでしか格納できないものを
格納してたりしてわけわからんバグのもとになったりするんだよなぁ
なぜ>>401はInProc前提なんだ?
0412nobodyさん
2009/11/18(水) 18:35:31ID:???単純にユーザが10人で、だから同時アクセスの最大数も10とかなら、
全然問題ないんじゃないか?
結局、セッションが適切に破棄できて、サーバスペックが問題ないようなら、
使えばいいんでない?という>>402の結論に帰結する。
0414nobodyさん
2009/11/18(水) 19:01:33ID:???0416nobodyさん
2009/11/19(木) 00:16:11ID:???>>402の結論に帰結する。
413 名前:anonymous[sage] 投稿日:2009/11/18(水) 18:59:05 ID:???
>>412
お前 >406 ちゃんと読んでる?
415 名前:nobodyさん[sage] 投稿日:2009/11/18(水) 19:08:49 ID:???
>>413
それも一つの解釈だろ?結論ではない。
412は結論といってる様だが?
0418nobodyさん
2009/11/19(木) 12:14:08ID:???0419nobodyさん
2009/11/19(木) 16:31:43ID:???させているんですが、現在はとりあえずMAX1000明細に制限して、もし制限を
超えるようなら「検索条件を変えてもっと明細を絞って下さい」みたいなメッセ
ーじを出しているんですが、お客さんからの要望で抽出した明細をきちんと全部
みたいと言われていて、条件を指定しなかったら万単位の明細行数になるんでペ
ージ切り替えでもいいですかって方向で持っていこうとしたらページ切り替えは
分かりにくいから駄目だといわれたんですが、GOOGLEマップみたいに画面
をスクロールさせるとちょっとづずデータを取ってくるような仕組みはASPで
も可能なんでしょうか?
0420nobodyさん
2009/11/19(木) 17:21:45ID:???JavaScriptを実行したいんだけど可能?
要は「画面を移動します。よろしいですか?」みたいなダイアログを出したい。
ButtonならOnClientClick()で楽勝なんだけど。
0421nobodyさん
2009/11/19(木) 18:17:59ID:???それAJAXで実際にやってみたけど、上のログにも感想あると思うけど、
AJAXで実装したら、サーバへのアクセス〜表示までのタイムラグがありすぎて実用的でなかった。
>>420
>>186参照
0422nobodyさん
2009/11/20(金) 00:30:35ID:Fa9imoF+Microsoft.Practices.EnterpriseLibrary.Loggingを使って
テキストファイルにログを吐く場合に、文字コードを指定することは可能でしょうか?
0423nobodyさん
2009/11/21(土) 14:35:48ID:???0424nobodyさん
2009/11/23(月) 01:06:05ID:4oP4nvDoPublic clsA As A = New A
Public clsB As B = New B
上記記述にてクラスファイルを参照し、実行した際に下の行だけ
「見つかったアセンブリのマニフェスト定義はアセンブリ参照に一致しません。」
というエラーが出てしまいます。
原因はなんでしょうか?
0425nobodyさん
2009/11/23(月) 03:31:17ID:???AとかBとかはどこで定義されているんだ
0426nobodyさん
2009/11/23(月) 08:32:23ID:???aspx.vb内の
Partial Class ClassA
Inherits System.Web.UI.Page
Public clsA As A = New A
Public clsB As B = New B
こういった記述です。
AとBは別のクラスファイルにPublic Classとして宣言しています。
他に何か書かないといけない事あったら言ってください。
0427nobodyさん
2009/11/23(月) 10:11:11ID:???WEBアプリなのかWEBサイトなのか
AとBは同じファイルに定義してあるのか?
まあなんかテンポラリ削除したら直りそうな気もする
0428nobodyさん
2009/11/23(月) 11:37:20ID:???VisualStudio2005で作ったWEBアプリで、IIS上で動作させています。
.NETFrameworkは2.0です。
AとBは別ファイルです。
テンポラリはWeb.configの記述ですか?
0429nobodyさん
2009/11/23(月) 18:04:25ID:???AとBの定義してあるファイルはどこにあるんだ?
そのファイルは.dllなのか.vbなのか?
テンポラリは標準ではたぶん
c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files
あたり。この中身ズバッと消して見れ
0430nobodyさん
2009/11/25(水) 16:38:29ID:???datagridへのデータの表示方法なのですが、
コード 名称 数 金額
11 テレビ32 1 10000
12 テレビ42 3 60000
21 DVDレコーダ 1 10000
22 BDレコーダ 2 40000
のような売上データをDBから取ってきて、
コード 名称 数 金額
11 テレビ32 1 10000
12 テレビ42 3 60000
テレビ計 4 70000
21 DVDレコーダ 1 10000
22 BDレコーダ 2 40000
レコーダ計 3 50000
総計 7 120000
のように表示させるにはどうすればよろしいでしょうか。
「総計」に関しては、単純にフッターに表示出来ますが、
「テレビ計」のような中間計を表示させるうまい方法がわかりません。
テレビのコード帯は10〜19、レコーダのコード帯は20〜29です。
恐れ入りますが、教えて頂けますでしょうか。(参考URL等でも)
0431nobodyさん
2009/11/25(水) 18:42:42ID:???各明細の編集ボタンも表示させたいとかだと不自由かもしれないけど。
Repeaterでやれば各行を集計して、コード帯やらが変わるたびに集計行を表示とか
いろいろできると思うけど。
0432430
2009/11/26(木) 02:15:49ID:???SQLで小計出力が出来ることを知りませんでした。
cube rollup 調べてみます。
(datatableをバインドする前に、
新たなdatatableを作って、コード帯が10〜19だったら、
それまでの合計を足して、NewRowに入れて、Addするみたいな
イメージで組もうとしてました)
ありがとうございます。
0433nobodyさん
2009/11/26(木) 10:44:47ID:???0434nobodyさん
2009/11/27(金) 00:01:40ID:???権限のからみでほとんど使えないだが…
0435nobodyさん
2009/11/28(土) 08:10:59ID:???入力される様にしたいのですが、色々調べてみたのですがわかりません。
どうすればよいのでしょうか?よろしくお願いします。
DB:MS Access、VWD2005、VB
0436nobodyさん
2009/11/28(土) 09:38:53ID:???0437nobodyさん
2009/11/28(土) 13:32:50ID:???Now()が、DateTime.Now()かSQL文のNow()が不明だからなんとも。
単に編集ボタン押した時に、その日付を入れたいなら>>436で。
ただ、実際の日付更新はUpdate文にNow()を記述して更新したほうが、
日付の更新し忘れがなくていいような気がする。仕様次第だけどさ。
GridViewにDataBindして編集したときって、
編集された内容をViewStateで保持し続けて、
Update後もUpdate前のデータを引きずるんだっけか?
それでSQL文のNow()が反映されないという意味なら、
DataSetで更新後のデータを引っ張るようにSQL文を記述するしかないと思われる。
INSERT **** WHERE ID = @ID; SELECT *** WHERE ID = @IDみたいな
INSERT ****;SELECT *** WHERE ID = SCOPE_IDENTITY();みたいな
0438nobodyさん
2009/11/28(土) 13:34:04ID:???○UPDATE **** WHERE ID = @ID; SELECT *** WHERE ID = @IDみたいな
0439nobodyさん
2009/11/28(土) 16:55:14ID:???ありがとうございます。
> ただ、実際の日付更新はUpdate文にNow()を記述して更新したほうが、
> 日付の更新し忘れがなくていいような気がする。仕様次第だけどさ。
この方法で行きたいです。
> GridViewにDataBindして編集したときって、
> 編集された内容をViewStateで保持し続けて、
> Update後もUpdate前のデータを引きずるんだっけか?
> それでSQL文のNow()が反映されないという意味なら、
> DataSetで更新後のデータを引っ張るようにSQL文を記述するしかないと思われる。
たぶん、この現象でUpdate後にDBにNow()が反映されないです。
0440nobodyさん
2009/11/28(土) 16:56:18ID:???以下のテストコード書いてみました。
テーブル名:名簿3
ID(主キー):オートナンバー型(長整数型)
名前:テキスト型(サイズ50)
年齢:数値型(整数型)
作成日時:日付/時間型
更新日時:日付/時間型
<asp:AccessDataSource ID="AccessDataSource11" runat="server" DataFile="~/App_Data/MyDB.mdb"
UpdateCommand="UPDATE [名簿3] SET [名前] = ?, [年齢] = ?, [作成日時] = ?, [更新日時] = Now() WHERE [ID] = ?">
<UpdateParameters>
<asp:Parameter Name="名前" Type="String" />
<asp:Parameter Name="年齢" Type="Int16" />
<asp:Parameter Name="作成日時" Type="DateTime" />
<asp:Parameter Name="ID" Type="Int32" />
</UpdateParameters>
</asp:AccessDataSource>
コードを書いて、動かしてみましたが
> UPDATE **** WHERE ID = @ID; SELECT *** WHERE ID = @IDみたいな
> INSERT ****;SELECT *** WHERE ID = SCOPE_IDENTITY();みたいな
のアドバイスをどう反映させれば良いのかわかりません。
上記コードの動きは、エラーは何も表示されず、更新内容がDBに反映されない。
もちろん「更新日時」情報も更新されず、以前の情報が入ったままです。
0441nobodyさん
2009/11/28(土) 18:31:02ID:???まずデータベースに更新されないところを解決してみたら?
自分はAccessではやったことがないので、よくわからんが。
更新時間の表示はそれからでも遅くないぞ。
0442435
2009/11/28(土) 19:11:41ID:???アドバイスありがとうございます。
正しく動くコードを書いてみました。
以下のコードだと、修正内容でDBが更新され、GridViewへも更新された内容が表示されます。
<asp:AccessDataSource ID="AccessDataSource11" runat="server" DataFile="~/App_Data/MyDB.mdb"
UpdateCommand="UPDATE [名簿3] SET [名前] = ?, [年齢] = ?, [作成日時] = ?, [更新日時] = ? WHERE [ID] = ?">
<UpdateParameters>
<asp:Parameter Name="名前" Type="String" />
<asp:Parameter Name="年齢" Type="Int16" />
<asp:Parameter Name="作成日時" Type="DateTime" />
<asp:Parameter Name="更新日時" Type="DateTime" />
<asp:Parameter Name="ID" Type="Int32" />
</UpdateParameters>
</asp:AccessDataSource>
0443nobodyさん
2009/11/29(日) 16:12:41ID:???visual web developer 2008で
新しいウェブサイトの作成→F5キーで「デバッグを開始」
をすると、
デバッグを有効にするためにweb.configを変更する
のダイアログ表示後、
LMS
c:\マイドキュメント〜\http:\localhost:3745\(作った新しいウェブサイト名)\ cntaints an invalid path.
というダイアログが表示してしまいます。
どういった現象で、どう解決したらよいのでしょうか?
0444nobodyさん
2009/11/29(日) 16:28:31ID:???ってディレクトリっていうかフォルダが存在していないとか?
そもそもディレクトリ名にコロンとか無理でしょ
0445nobodyさん
2009/11/29(日) 16:39:19ID:???AccessじゃなくてSQLExpress(無料のやつ)で悪いんだけど、こんなんで動作してるな。
しかも、編集したあとはちゃんと日付をもってきてくれてるから、
あとから編集後の行だけ再取得するクエリとか記述しなくてもいいみたいだ。
ちなみに>>437に書いたのは、.xsd等を使って自分でDataSetを定義して、
Update後に、Updateした行を再取得する方法。
<asp:SqlDataSource ID="SqlDataSource1" runat="server"
ConnectionString="<%$ ConnectionStrings:ConnectionString %>"
SelectCommand="SELECT * FROM [TableMaster]"
UpdateCommand="UPDATE TableMaster SET TestInt = @TestInt, DateTime = { fn NOW() } WHERE (TestMasterID = @TestMasterID)">
</asp:SqlDataSource>
0446435
2009/11/29(日) 17:56:49ID:???アドバイスありがとうございます。
当方でもVWD2005 + SQL Server2005でMS Accessと同じテーブルを作成し確認してみました。
[更新日時] = {fn Now()} の記述で問題なく、更新日時に現在に日時が入力されGridViewに
表示されました。
現在の環境はSQL Serverは使えず、MS AccessをDBとして使用しています。
<asp:SqlDataSource ID="SqlDataSource11" runat="server" ConnectionString="<%$ ConnectionStrings:myDb %>"
SelectCommand="SELECT [ID], [名前], [年齢], [作成日時], [更新日時] FROM [名簿3]"
UpdateCommand="UPDATE [名簿3] SET [名前] = @名前, [年齢] = @年齢, [作成日時] = @作成日時, [更新日時] = {fn Now()} WHERE [ID] = @ID">
<UpdateParameters>
<asp:Parameter Name="名前" Type="String" />
<asp:Parameter Name="年齢" Type="Int32" />
<asp:Parameter DbType="Datetime" Name="作成日時" />
<asp:Parameter Name="ID" Type="Int32" />
</UpdateParameters>
</asp:SqlDataSource>
0447435
2009/11/29(日) 17:59:01ID:???ちなみに、新規データ「挿入」時の「作成日時」「更新日時」の自動登録は以下のコードで
MS Accessで正しく動作しています。
<asp:AccessDataSource ID="AccessDataSource12" runat="server" DataFile="~/App_Data/MyDB.mdb"
InsertCommand="INSERT INTO [名簿3] ([名前], [年齢], [作成日時], [更新日時]) VALUES (?, ?, Now(), Now())"
SelectCommand="SELECT [名前], [年齢] FROM [名簿3]">
<InsertParameters>
<asp:Parameter Name="名前" Type="String" />
<asp:Parameter Name="年齢" Type="Int16" />
</InsertParameters>
</asp:AccessDataSource>
■ このスレッドは過去ログ倉庫に格納されています