トップページphp
986コメント449KB

【質問】ASP.NETスレ Part4【議論】

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2007/07/17(火) 23:49:46ID:pyJr9yIy
●過去ログ
Part1 - 【質問】 ASP.NETスレ 【議論】
http://pc5.2ch.net/php/kako/1040/10406/1040698263.html

【質問】ASP.NETスレ Part2【議論】
http://pc8.2ch.net/test/read.cgi/php/1111480331/

【質問】ASP.NETスレ Part3【議論】
http://pc11.2ch.net/test/read.cgi/php/1160355849/
0769nobodyさん2008/08/23(土) 11:24:17ID:???
>>768
サンプルにAccess使うあたりちょっと古い本じゃないかと思ったが予感的中。
(asp.netだと気の利いた本は、まともなデータベース使って解説するから)
これ(新しい)asp.netじゃなくて(古い)aspだよね。ASPは別スレ。
もしasp.netが使えるならそっち使った方が開発は楽だよ。
便利な新機能多いし。

あとざっとしかコードは見てないけど、SQL文の生成で
文字列を連結して作るのはセキュリティ上、危険だとおも。
公開するWebサーバなら絶対やっちゃいけない書き方。

近頃、ハッキングされて個人情報漏洩する事件はだいたいが
SQLインジェクションでやられてる。
asp.netではSQL文に変数いれたいところはパラメータ化する。
旧ASPでのSQLインジェクション対策は知らない。

0770nobodyさん2008/08/23(土) 11:48:04ID:???
>>768
asp.net新機能
http://msdn.microsoft.com/ja-jp/library/fa1h9d0d.aspx

aspってマスタページも使えなかったんだな。
asp.net知ってしまうとaspは耐えられない不便さかも。


0771nobodyさん2008/08/23(土) 21:44:48ID:???
把握した。

とりあえず、Visual Studio 2008 Express Editionsダウンロードしてきた。
一から作ります。
0772nobodyさん2008/08/24(日) 03:23:33ID:???
>740
あっ、思い出した。
Me.LoadControlメソッドを使え。
0773nobodyさん2008/08/24(日) 08:39:57ID:???
勘で書くけど、参照ができないんじゃない?
0774nobodyさん2008/08/24(日) 14:19:39ID:???
検索フォームで、フィルタリングしたものをグリッドビューに反映させるところまで出来ました。
初歩ですがw

それで、検索結果で、「何件ヒットしました。」みたいな件数を表示させたいんですが、どうすればいいんでしょう。
0775nobodyさん2008/08/26(火) 18:55:45ID:???
Rows.Count
0776nobodyさん2008/08/28(木) 02:29:35ID:2GEIcWF8
asp.netを始めたものですが、教えてください。

参考書等を見ると、DropDownListやGridViewにデータをバインドさせるとき、
お約束のようにSqlDatasourceからデータを取得していますが、
みなさん、実際そうされていますか?

例えば、画面にDropDownListが10コあり、それぞれ異なるリストを表示する場合は
SqlDatasourceに限らず他のデータソースであっても、同じ数だけ配置されていますか?

プログラム側ででDataSourceプロパティにDataSetをセットする方が一般的?
0777nobodyさん2008/08/28(木) 03:40:30ID:???
バインドするデータが少なく、将来的にも増加が無いようなら素直にSqlDatasource使ってます。
理由は他のデータソース使うより楽だから。でも10個程度なら自分でDataSetかな・・・。
0778nobodyさん2008/08/28(木) 06:13:04ID:???
おとこならGrid使わずに
For i=∞

Next
でデータを表示させろ
0779nobodyさん2008/08/28(木) 11:24:42ID:???
reportなら蟻
0780nobodyさん2008/08/28(木) 12:58:47ID:tcZ5Xl9o
>>762
Webサイトモデルのその制限は、自作ユーザーコントロールに必要なインターフェイスを定義して、それをインプリメントしとけば型を参照できなくてもたいていのことはできるよ
0781nobodyさん2008/08/28(木) 22:08:11ID:???
詳しく話を聞こうじゃないか
0782nobodyさん2008/08/29(金) 02:29:44ID:???
ファイル名について相談です。
画面に対応するDBとの接続を記述したクラスについて
どのように命名するのが一般的なのでしょうか。

例えば検索画面Search.aspx、Search.aspx.vbに対応する
DB接続用のクラスをSearch.vbとすると、
検索一般についてのクラスなのか、画面Search.aspxに対応するクラスなのか
わかりにくくなってしまうように思います。

ググってみたところではDAL_Search.vbのような
接頭詞DALが一件ありました。
0783nobodyさん2008/08/30(土) 00:52:45ID:???
グリッドビューで表示されたチェックボックスフィールドでクリックしたら即データベースに反映させたいんだけどどうしたらいいんだろう??

編集フィールドのクリック→チェックボックスをクリック→更新

なら、すぐに作れるだけど、即チェックボックスを押してデータベースに反映させるのはどうしたらいいんでしょう。
0784nobodyさん2008/08/30(土) 01:30:58ID:???
自動でポストバックするようにすればいいだけですよ
0785nobodyさん2008/08/30(土) 01:37:27ID:???
グリッドビューのテンプレートの編集のプロパティのオートポストバックをTRUEにするだけってことでしょうか?

表示上はチェックがついてもデータベースが更新されていないですが、UPDATEはどこで設定するんでしょう?

初心者ですみません。
07867762008/08/30(土) 12:17:07ID:???
>>777
やっぱそうなりますかね。
デザイン画面に大量のSqlDataSourceがあるのが気持ち悪いなと。
それといまいちObjectDataSourceのメリットが見えててこない・・・

>>780
自分もそれ知りたいです。
0787nobodyさん2008/08/30(土) 21:08:18ID:???
あかん、自動ポストバックして、も保存されない。

チェックボックスのハンドラでデータデースの書き込みがよくわからん。
現在のGridViewの状態(checkBoxの状態)をDatabaseに保存するのってどうやるの??
0788nobodyさん2008/08/31(日) 21:19:29ID:???
>>775

遅くなってすみません。
それだとページビューのときに表示してる件数しか表示されませんTT
0789nobodyさん2008/09/01(月) 19:42:40ID:???
<asp:Repeater ID="Items" runat="server">
 <ItemTemplate>
  <asp:Literal ID="Hinban" runat="server" Mode="Encode" Text='<%# DataBinder.Eval(Container.DataItem, "品番") %>'></asp:Literal>
 </ItemTemplate>
</asp:Repeater>

は正しく動作するのですが、
これを UpdatePanel で括ると Container.DataItem がないと怒られてしまいます。

<asp:Repeater ID="Items" runat="server">
 <ItemTemplate><asp:UpdatePanel ID="UpdatePanel1" runat="server"><ContentTemplate>
  <asp:Literal ID="Hinban" runat="server" Mode="Encode" Text='<%# DataBinder.Eval(Container.DataItem, "品番") %>'></asp:Literal>
 </ContentTemplate></asp:UpdatePanel></ItemTemplate>
</asp:Repeater>

上手な回避策はないんでしょうか。
0790nobodyさん2008/09/02(火) 00:11:14ID:vKzpFC6m
Webアプリよりも上位に位置するファイルを参照できるようにするにはどうしたらよいでしょうか?
ソリューション配下に、Webアプリのプロジェクトが2つくらいあって、どちらのプロジェクトでも共通で参照できるようにWebアプリの上位に、CSSやJSなどのファイルを配置したいのですが。。。

IISの場合だと既定のWebサイト直下にCSSやJSを置いて、その下に仮想ディレクトリを作ってWebアプリを配置すると参照できるのですが、同じ構成をVS2008上でどうやってつくりあげたらよいのかがわかりません。

配置関係は以下の通りです。
テスト.sln
 common.js
 Webアプリ1 ←ASP.netプロジェクト
  app_code
  bin
  ・
  ・
 Webアプリ2 ←ASP.netプロジェクト
  app_code
  bin
  ・
  ・
物理パスを同様にしておいても、この場合だと、commonのファイルが見えておらず、スクリプトの関数などを呼び出すとエラーになってしまいます。
IISで同じように配置すると・・・

既定のWebサイト
 common.js
 Webアプリ1
 Webアプリ2

Webアプリ1からも、Webアプリ2からも、commonのファイルをちゃんと参照できています。
VS上ではどうやって配置したらよいのやら・・・。
参照設定とかApp_GlobalResourcesあたりでcommonのファイルを追加するのかなとも思ったのですが、それらしきものがなくて。。。
分かる方すみませんがご教授ください。
0791nobodyさん2008/09/02(火) 00:16:16ID:???
できない
0792nobodyさん2008/09/03(水) 12:47:18ID:???
質問です。
登録会員がWEB上で設定した時間とメールアドレス宛に、自動でメールを送るような使い方をしたいと思っています。
IIS5と.NETの組み合わせでこのようなメールの予約配信は可能でしょうか。
0793nobodyさん2008/09/03(水) 13:56:44ID:???
可能です。
0794nobodyさん2008/09/03(水) 22:54:53ID:???
意外と難いぜ?
0795nobodyさん2008/09/04(木) 10:36:37ID:???
でも可能です。
0796nobodyさん2008/09/05(金) 02:44:22ID:???
30 名前:nobodyさん[] 投稿日:2008/09/04(木) 16:14:13 ID:EDn9ySYG
フォームで日にちと時間を指定して
その日時にメールを送信したいのですが、
cronとやらを使うのが一般的なやりかたですか?

よろしくお願いします。
スレ違いだったらごめんなさい。



お前らがちゃんと答えてやらないからPHPスレにきたじゃないか
0797nobodyさん2008/09/05(金) 08:24:59ID:???
>>796
ワロタ
キューイングと送信ロジックを裏で動かす算段がついていれば、
悩む必要ないことだって分かると思うんだがなぁ。
0798nobodyさん2008/09/05(金) 09:12:57ID:eF6Wfezu
GridViewであるレコードを選択しても、たまに違う結果が返ってくるけど何が原因なんだろう
0799nobodyさん2008/09/05(金) 16:00:28ID:???
>>792
設定するのがWEBってだけで、配信側はWEBAPである必要ないと思うが
0800nobodyさん2008/09/05(金) 21:12:21ID:???
>>798
プログラムは書いたように動く
0801nobodyさん2008/09/05(金) 21:51:13ID:A2hsdpgy
runatって何の略?
0802nobodyさん2008/09/05(金) 22:04:28ID:???
run at でしょ
0803nobodyさん2008/09/05(金) 22:26:47ID:???
R ur nase are belong to t
0804nobodyさん2008/09/08(月) 22:30:56ID:lqDRVsX6
質問です。

テキストボックスの初期色:白
ボタン1押下イベント:テキストボックスの色を青にする
ボタン2押下イベント:指定なし
Page_PreInitからPage_InitCompleteの各処理:テキストボックスの色を黒にする

上記の条件で以下のイベントを実行します
1.画面表示
2.ボタン1押下
3.ボタン2押下

自分の想定では、1.黒→2.青→3.黒だと思ったのですが、実際は
1.黒→2.青→3.青となります
3.ボタン押下で確かにテキストボックスを青くする処理が走っているのに
なぜ画面に反映されないのでしょうか

また、Page_Loadで黒くする処理を行った場合
ボタン押下イベントよりも後にPage_Loadが走るにも関わらず、色は青いままです


イベントと画面表示の関わりに肝がありそうな気はしますが、
ググッても出て来ませんでした・・・なぜでしょうか
0805nobodyさん2008/09/09(火) 01:26:47ID:???
ボタン2押下時になにもしないんだから、青のままで正解じゃね???

>ボタン押下イベントよりも後にPage_Loadが走る
Page_Loadの後にRaisePostBackEventが走るだろ。
08068042008/09/09(火) 08:02:23ID:???
>>805
説明を間違えました
ボタン2押下時は何もしないのですが、Page_PreInitからPage_InitCompleteで
黒くしているの処理は通っているのでなぜ黒くならないのか、という疑問です

>Page_Loadの後にRaisePostBackEventが走るだろ。
RaisePostBackEventですか…この処理で何かやってるという事でしょうか
調べてみます、ありがとうございました
0807nobodyさん2008/09/09(火) 22:31:10ID:???
ASP.NETの動作がわかってるんだろうか・・・心配
08088042008/09/09(火) 22:52:14ID:???
>>807
よく分かっていません
RaisePostBackEventについてもググってみましたがめぼしい情報は出てきませんでした
なんとなく最も基本的なところだと思うんですが入門サイトを見ても
記述が無いし、イベントの処理順とかコントロールの使い方とかばかり…
0809nobodyさん2008/09/11(木) 00:25:15ID:R125hntO
質問になります。よろしくお願いいたします。

<やりたいこと>

UpdatePanelのなかにドロップダウンリスト1とドロップダウンリスト2とボタンが入っています。
最初の状態ではボタンはenabledがfalseになっているものとします(つまり押せない状態)。

まず、ドロップダウンリスト1を変更すると非同期ポストバックで、ドロップダウンリスト2の
選択肢を増やします。その後、ドロップダウンリスト2の値を変更(SelectedIndexChanged)すると
非同期ポストバックでボタンのenabledをtrueにします。

その後、ボタンを押すと、非同期ポストバックではなく、通常のポストバックを起こし、ページ内容を更新します。

</やりたいこと>

というわけなんですが、最後のボタンを押す部分で、ボタン自体がUpdatePanelの中に入っているので通常のポストバックが起きません。
UpdatePanel内のコントロールでも強制的に通常のポストバックを起こさせることは可能なのでしょうか?

根本的なことを勘違いしているかもしれませんが、どうぞよろしくお願いいたします。
0810nobodyさん2008/09/11(木) 09:12:43ID:???
ボタンをUpdatePanelの外に出して、ドロップダウンリスト2の
アイテム変更イベントでボタン有効可否を切り替えるJavascriptを書く。
08118092008/09/11(木) 23:58:54ID:???
>>810

なろほど。確かにそれでいけそうですね。
UpdatePanel内でもコントロールまたはそのイベントで同期させるか非同期させるか簡単に選択できたらいいのに・・。

ありがとうございました。
0812nobodyさん2008/09/20(土) 14:34:00ID:???
質問があります。
ユーザーコントロールを作って、色々なページで使い回したいけれど
ユーザーコントロールのTextBoxの値をSqlDataSourceの条件に設定するには
どのように行なえばいいのでしょうか?どの画面からも設定できなくて・・・
0813nobodyさん2008/09/20(土) 15:00:24ID:???
usercontrol.findcontrol("textBox")
0814nobodyさん2008/10/09(木) 14:25:18ID:???
しょうもない質問なんですが、セッションIDの破棄ってどのタイミングで行うのでしょう?

とあるサイトで、ログアウトボタンを押すとcookieは削除され、ブラウザ上では破棄され
た様に見えるのですが、cookieの内容を送りつけるとログイン状態を復元できるのです。
その後再ログインして別セッションを得ても、前回のセッションIDも有効という変な仕様。
(早い話が2重ログインOK)

自前のサイトは、ログアウト時にはサーバー側でもセッションを破棄。再利用不可。
やっぱりIPA行きでしょうか。
0815nobodyさん2008/10/09(木) 15:00:00ID:???
セッション切れるサイトきらい
sesstion.requesttimeout = 60*24*365と書いとけ
0816nobodyさん2008/10/10(金) 14:35:33ID:???
ASPででっかなボタン配置したらデザインでは普通に見えるんですが、
実行するとめちゃめちゃ荒くなってるんですが、これはしょうがないのでしょうか?
IE8だとデザインのまま見えて、IE7とか6だと荒れる状態で、IE6とかでもデザインのまま見えるようにしたいのですが・・・
0817nobodyさん2008/10/11(土) 01:15:38ID:???
それセッションじゃないだろ?
認証の方だろ?
0818nobodyさん2008/10/11(土) 15:01:51ID:???
セッションと認証管理を同一と思いこんでる人が多いが、
そんなのはただたまたまこれまでに多いやり方だっただけだ。
0819nobodyさん2008/10/11(土) 15:37:05ID:???
じゃセッション以外の仕組みは?
0820nobodyさん2008/10/14(火) 09:10:23ID:???
認証後は、認証情報をセッションで管理しない?
つど、ワンタイムトークン発行する方法もあるけど。
0821nobodyさん2008/10/14(火) 21:50:51ID:???
しない。
0822nobodyさん2008/10/14(火) 21:52:26ID:???
認証クッキーで認証状態を管理しているのに、あえてセッションを使う必要ないし。
もちろん使うやり方もありうるし、場合によってはそれが望ましいこともある。
でも常にそうやるようなもんじゃない。
0823nobodyさん2008/10/14(火) 22:22:31ID:???
すまん、言い方悪かった。
当然、クッキー使うにしてもセッションID使うにしても、鯖でも管理するよなと聞きたかった。

有効期限をクライアント側に一任しないよな、という意味で聞きたかったんだ。すまん。
0824nobodyさん2008/10/15(水) 01:27:14ID:???
安全性をできるだけ高めたいならそうするが、別に必須でもないでそ
0825nobodyさん2008/10/15(水) 01:28:04ID:???
どうせ大抵は20分くらいで切れるように設定するんだし。
0826nobodyさん2008/10/15(水) 01:30:34ID:???
まあ、これは好みの問題でもあるけど、俺はサーバ側には、
ステート維持に必須になるような状態はできる限り持たない主義。
0827nobodyさん2008/10/17(金) 03:38:54ID:???
まぁ、マニュアルの「ASP.NET の状態管理に関する推奨事項」の項目通りにしとけばok
0828nobodyさん2008/10/17(金) 08:58:27ID:EdczhNrK
今までXP proにクライアントぶらさげてVWDで作ったアプリ走らせてたんだけど、最近2000 serverのライセンスが余った。

XP proで安定動作してるんだけど、2000serverに換える利点ってあるかな?
セッション数くらい?
0829nobodyさん2008/10/18(土) 00:44:22ID:???
XPのIISでクライアントの接続数が事足りるのか?2000Serverバッチ恋。
0830nobodyさん2008/10/18(土) 01:51:00ID:???
IISのセッション数はなんとでもなるけど、
TCPIP.SYSの接続数の問題がある罠
0831nobodyさん2008/10/18(土) 02:07:40ID:ILpwoZPF
クライアントは12台だけど同時に全部はないんで、行けてる
0832nobodyさん2008/10/23(木) 14:55:33ID:???
質問なのですが、
http://ime.nu/www.atmarkit.co.jp/fdotnet/dotnettips/561aspajaxprepare/aspajaxprepare.html

ここを参考にしてASP.NET AJAX Control Toolkitをサーバ上に組み込み、ファイルをアップロードして実行したところ、以下のようなエラーが出ました。

ファイルまたはアセンブリ 'AjaxControlToolkit'、またはその依存関係の 1 つが読み込めませんでした。アクセスが拒否されました。

サイトルートのbinフォルダにAjaxControlToolkit.dllはありますし、ファイルが壊れているということもありません。
にも係わらずこのようなエラーが出てしまいます。
ローカルのPCでは正常に動作するのですが…。

原因をご存知の方はいらっしゃいますでしょうか。

開発環境はVisualStudio2005 Standardです。
0833nobodyさん2008/10/24(金) 03:32:47ID:icuWvk1z
型指定されたDataSetとTableAdapterをApp_Codeディレクトリ意外の場所(クラスライブラリプロジェクトなど)に作成することってできないのでしょうか?

App_Codeの下にしか作れないとすると、1ソリューションに複数のWebアプリが含まれる場合(参照するデータベースも同一)、
型指定されたDataSetとTableAdapterはWebアプリ毎に(同じクエリであっても)重複して作成する事になってしまうような気がするのですが・・・。

それともそもそもDataAccessレイヤを別プロジェクトとして分ける必要がある規模のシステムでは推奨されない機能だったりするのでしょうか?
その辺りがいまひとつ良く分からずに悩んでいます。
皆さんその辺りはどのようにされているのでしょうか?

0834nobodyさん2008/10/24(金) 11:18:28ID:???
>>832
サーバにExtentionはインストールした?
Web.configの記述は見直した?

>>833
できるよ
クラスライブラリを使用する側のweb.configでTableAdapterが使う接続文字列を指定するのを忘れないように
0835nobodyさん2008/10/24(金) 12:41:29ID:???
使用するコンポーネントの制約で、MasterPageを禁止されてしまいました。
ただ、デザインのほうは、ヘッダがあり、左側にメニューがならび、メニューをクリックすると
右側が変化するというものです。
この場合、フレームを使わなくても実現できるのでしょうか?
ちょっと上のほうを見てみましたが、タブ表示にしているようでしたので…。
0836nobodyさん2008/10/24(金) 15:18:41ID:???
>>834
返答していただきありがとうございます。
Extentionはインストールしております。
Web.Configの記述も見直しましたが特に問題はありませんでした。

また試しにAjaxControlToolkit.dllを削除して実行した所、他のdllでも同様のエラーが発生します。

「ファイルまたはアセンブリ 'XXXXXXXXXXXXX'、またはその依存関係の 1 つが読み込めませんでした。アクセスが拒否されました。」
('XXXXXXXXXXXXX'はdll名)

サイトルート直下のbinフォルダに入っているdll全てに対してエラーが発生しているようです。
0837nobodyさん2008/10/24(金) 20:51:37ID:???
>>835
マスターページは、複数のページで共通レイアウトがある場合に重複コードを無くす目的で使うものなんだから、全てのページにヘッダとメニューを書けば実行結果は同じになる
せめてヘッダとメニューをユーザーコントロールにしておけば、コードの重複も最小限になるよ

>>836
そういうエラーが出た経験があるような気もするけど覚えてないなぁ
新規にソリューションを作成しなおしてサーバに配置しても動かないんだったらなんかのインストールとかIISの設定自体がおかしいんだろうし、
そこから関連するコンポーネントとかを追加していって、ある時点でエラーが出るんだったらそいつが犯人だろうし。
そうやって調べるしかわかんない
08388332008/10/25(土) 10:36:55ID:???
>>834

ありがとうございます。
クラスライブラリプロジェクトにDataSetとTableAdapterを作って行き、各Webアプリケーションプロジェクトでそちらを参照すれば良いという事でしょうか?
その場合、DataSetはApp_Codeディレクトリは作成しなくても問題無いのでしょうか?
0839nobodyさん2008/10/25(土) 14:36:06ID:???
>>837
ありがとうございました。
ユーザーコントロールで試してみます。
0840nobodyさん2008/10/25(土) 16:31:58ID:???
>>836
自分はIIS7でたぶん同じ症状でした
IIS7ならIISマネージャ上で「アプリケーションへの変換」で解決
c:\inetpub\wwwroot\binにdll置いても読んでくれるみたいです
IIS6だと「アプリケーションの設定」かな?
0841nobodyさん2008/10/25(土) 21:14:04ID:???
質問です。
VistaにインストールしたVisual Studio 2005を使いASP.NETでの開発をしております。
デバッグ時に起動する"ASP.NET開発サーバー"上で動いているサイトを異なるブラウザでアクセスすると、
Firefox、Windows版Safari、SeaMonkedyでの表示が異常なほど遅くなります。
IE、Opera、Google Chromeは問題ありません。
結局、IISに発行すると、遅くなってたブラウザでも問題なく普通に表示できるので、開発サーバーだけでの問題と思います。
WindowsXP上での開発はそのようなことはなかったはずなので、実際はVista+開発サーバーでの問題かもしれません。
CSSやJavascriptのバグは開発時に潰したいので、非常にストレスで困っております。
どなたか、Firefox等でも問題なくアクセスできる方法ご存じないでしょうか?
08428342008/10/27(月) 23:48:32ID:???
>>838
うん
DataSet(とTableAdapter)はクラスライブラリプロジェクトにだけ定義すればいい
0843nobodyさん2008/10/28(火) 02:40:25ID:???
Visual C# 2008 Express Edition で ASP.NET を使ったサービスの開発とか
普通に出来るんですか?製品版を買うのと比べて、なにか制約事項があったり
するんでしょうか?

まずは、WinServer2k3にOracle10gXEとIISを入れて、極々簡単な日記システム
でも作ってみようかと思っています。無料とはいえ、落としてくるのもそれな
りに大変そうなので、まずはこちらで質問させて頂きました。
0844nobodyさん2008/10/28(火) 03:07:38ID:???
ASP.NETでの開発ならC#じゃなくてVisual Web Developerってやつ。
クラスライブラリ作るときなんかはC#のほうもいるから両方入れとけ。
制約事項はドキュメント読んでね。(普通に使えるけど)
0845nobodyさん2008/10/28(火) 20:27:14ID:???
VWD2005で画像の表示ページ(View.aspx)を作成しています。

SQLデータベースに、画像のファイル名とタイトルなどを登録していまして、
「前へ」、「次へ」ボタンで画像を送るようにしています。
ボタンは、イメージでクリックされるとJScriptで画像やタイトルを変更する
ようにするには、JScriptからどのようにデータベースの操作をすればよい
のでしょうか?

SQLデータベースには、VB(View.aspx.vb)で接続できるのですが…。
0846nobodyさん2008/10/28(火) 20:36:40ID:wPLaDBkw
>>845
htmlを再読込することなく、やりたいということ?
その方法だと、ASP.NET AJAXを利用するしかない。

具体的にはポストバックした後に実行されるプロシージャ内に、
画像を描画するClientScriptを記述するメソッドをするだけ。

ポストバック→DBに接続→ファイル名を取得
→JavaScriptで画像を切り替えるスクリプトを登録

そんな感じ。

Ajaxを使いたくないなら、前と次のファイル名をすべてhtml内に配列で持って、
それから読み込むようにするしかない。
それもだめならhtmlの再読込を許すしかないね。
0847nobodyさん2008/10/28(火) 20:48:47ID:???
>>845

はい。htmlを再読込すると、いろいろ飾りがあるので、かなりうっとうしくなって
しまって…。

実は、Ajaxをインストールしてあるのですが、つまずいてしまって。
もう一度やってみます。
0848nobodyさん2008/10/28(火) 21:06:12ID:wPLaDBkw
>>847
AJAXだと、ちょっと違うかもしれないけど、
AJAXにもPage.ClientScript.RegisterStartupScriptみたいなメソッドがあって、
それを利用すれば、htmlの再読み込みしなくてもJavaのプログラムを実行できるよ
いまPCがなくて、実際に書いたコードがないので具体的な例は出せないけど・・・

それ以外の方法としては、さっきも書いたけど、
ファイル名をJavaScript内の配列で持つようにして、クリックするたびに
その画像をimgタグのsrcとして指定するような感じしかないかな?
0849nobodyさん2008/10/28(火) 22:02:32ID:???
>>848
JavaScript内の配列にデータを入れるという方法に興味があります。
これは、前の質問にも繋がる?のですが、VBのプログラムでJavaScriptの配列に
データを入れ込むことが出来るのでしょうか?
0850nobodyさん2008/10/28(火) 22:45:04ID:???
>VBのプログラムでJavaScriptの配列に
var a = new Array(<%=カンマ区切りの文字列を返すFunction%>)

あとICallBackEventHandler
0851nobodyさん2008/10/28(火) 22:55:08ID:???
ありがとうございます。
やってみます。
08528322008/10/29(水) 12:37:24ID:???
返事が大変遅れてしまって申し訳ありません。

>>837>>840さん、返答ありがとうございます。
あれから試行錯誤したところ、Web.Configに記述していた
<identity impersonate="true" userName="XXXXXX" password="XXXXX" />
の記述行を変更すると、エラーが消えて正常にページを表示できるようになりました。
記述する行が正しくなかったようです。

ご教授してくださった皆様、ありがとうございました。
0853nobodyさん2008/10/29(水) 16:21:32ID:???
>>850
それこそ、全部Page.ClientScript.RegisterStartupScriptでいいと思うよ

string commaText = "カンマ区切りのファイル名";
string javaScript = "var a = new Array(" + commaText + ") ";
Page.ClientScript.RegisterStartupScript(javaScript);

あと、現在の表示している画像の配列のindex数を保存する変数をJavaで登録して、
クリックするたびにindex++なりindex--して、配列数オーバーのindexなら0に戻すとかして
画像名を取得したら、imgタグにファイル名を渡してあげればいいはず。

そらでタイプしてるから間違ってたらごめん
0854nobodyさん2008/10/29(水) 19:55:38ID:???
質問させてください。
VS2003で作成したものとVS2005で作成したものを比べると、後者の方が
遥かに画面のちらつきが目立つんですが、これは何が理由なんでしょうか?
作り的には、ほぼ同じような作り方をしてるつもりなんですが。

今の所、ちらつきを無くすにはAJAXを使う方法しか見つかっていませんが、
それをVS2005でやるのは大変だと思います。やるならVS2008だと思いますが
期限や予算の関係で今すぐに、という訳にはいきません。

顧客に、VS2005でちらつきが抑えられないならVS2003の方がまだマシだ
という話をされると困りますよね。同じような経験をされている方っていませんか?
08558542008/10/29(水) 19:58:57ID:???
↑大事な所が抜けていた気がするので補足ですが、「ポストバック時」のちらつきです。
0856nobodyさん2008/10/29(水) 22:44:57ID:???
は?
0857nobodyさん2008/10/30(木) 00:39:44ID:???
それは気のせいだから気にするな。
疲れてるから休め。
0858nobodyさん2008/10/30(木) 02:05:52ID:???
>854
なんとなく勝手に埋め込まれるhiddenのフィールドのサイズが2005で増えたプロパティとかの分が死ぬほど膨らんでて
POSTされてるデータ量が増えて遅くなってるんじゃないかなとか思ったり。
それだったらIISのgzipを有効にしてごまかしてみるとか。
まぁ、WebFormってそういうものだしと思ったり…

勝手にポストバックされたりとか意図しないところで勝手なことをいろいろやられてしまうあたりがWebFormは怖くて使えないところ…
だからASP.NET MVCには期待してる。
0859nobodyさん2008/10/30(木) 02:44:47ID:???
ASP.NETでi-mode対応の開発をしてる人っていません?
cookie駄目て事で頭抱えてるんスけど。

cookielessでsession使おうと思ったんだけど、一発目のPOSTに対して勝手に
GETメソッドが走るんで、POSTされた情報が全部消えてしまう('A`
Page.BeginRequestメソッドにはGETの後でしか来ないみたいだし。

やっぱ自前でsessionをDBに管理するしかないンすかね?
08608542008/10/30(木) 03:20:59ID:???
>858
レスどうもです。hidden、ビューステートあたりのデータ量を
削る方法が無いか検討してみます。
0861nobodyさん2008/10/30(木) 07:31:24ID:???
VWDなんだけど、select文で質問。
select文が「?」で記述されてるんだけど、項目がたくさんあるんで「?」だと1回ずつしか使えなくて不便。
変数で記述する方法があるって聞いたんだけど、どこで変数を定義してどうやって使えばいいんでしょう。
0862nobodyさん2008/10/30(木) 19:57:52ID:???
少しは自分で考えたり調べたりってことをしないのかね。
調べたけどわからないので質問しましたって言いそうだが。

sqlcommandクラスからparameters.addwithvalue(key, value)でも調べろ
0863nobodyさん2008/10/31(金) 15:36:07ID:???
ASP.NET MVCって遷移先とパラメータが単純にURLに入りますよね?
ということは、単純にサーバ側で受け取るなら、ユーザが適当にHTTPのPOSTで送ってきたら、
正直に受け取っちゃうことになりませんか?

今まで、勝手にポストバックとか意図しないところで勝手にいろいろやられていたから、
隠されたパラメータでそのあたりが防がれていたと思うんですが、
ASP.NET MVCを使うなら、そのあたりを自前で実装しなくちゃならんのですか?
{id}に常に暗号化したデータを入れるような‥‥
08648632008/10/31(金) 17:20:05ID:???
他のモノを探していたら偶然に見つけました。
要するに、自分でチェックしると書いてあります。
http://weblogs.asp.net/stephenwalther/archive/2008/06/26/prevent-url-manipulation-attacks.aspx
0865nobodyさん2008/10/31(金) 22:32:17ID:???
偽装してwordに差し込むのと、FDFに差し込んでPDFにするのと、どっちが楽?
総合的に判断して。
0866nobodyさん2008/11/01(土) 18:51:30ID:???
ActiveReportを使うのが一番楽
0867nobodyさん2008/11/03(月) 20:35:12ID:???
すごいけど有料かー。

ところで.NET Framework 3.5のOS一覧に2000serverがないんだけど、vistaで開発したアプリを2000serverのIISで実行することって出来ないのかな。

アプリが完成したんで今、実行機に2000serverのインスコ中なんだけど・・・。
0868nobodyさん2008/11/04(火) 02:26:45ID:???
win2k serverのiisではasp.net 2.0は動かないよ
win 2003か2008が必要
0869nobodyさん2008/11/04(火) 09:54:13ID:???
vistaのVWD側で2.0でビルドしたら普通に動いたわー。
3.5は無理だった。
■ このスレッドは過去ログ倉庫に格納されています