トップページphp
1001コメント429KB

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

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2006/10/09(月) 10:04:09ID:luJDzNn3
●過去ログ
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/
0049nobodyさん2006/10/15(日) 09:54:28ID:???
>>48
うそーーーー
アドレス長すぎ。アンケートスパムがくるらしい。webでログインしようとしたら
>'/admin' アプリケーションでサーバー エラーが発生しました。
>オブジェクト参照がオブジェクト インスタンスに設定されていません。
だめじゃん。糞鯖じゃん。
0050nobodyさん2006/10/15(日) 10:37:12ID:ooNOPY4z
DataGridを使用していてわからない個所があるので教えてください。
現在、DataGridの各列はTextBoxにしており、DataSourceにSQLの結果をセットすると
その内容がTextBoxにちゃんと表示される状態です。
やりたいことはTextBoxにフォーカスがあたっている状態で、フォーカスが別のオブジェクトに
移った場合、処理をさせたいというものです。
エラーチェックとか、入力した値(数値なのですが)を合計して表示してあげるとか
やりたいのです。
このようなことをやる場合、イベントはクライアント処理で書くべきでしょうか?
それともフォーカスが異動したイベント(そのようなイベントがわからないのですが)を
取得し、サーバ側で処理するのが一般的なのでしょうか?
DataGridを使用していることを踏まえて教えてください。
0051nobodyさん2006/10/16(月) 00:21:04ID:???
まず確認するがテキストボックスは自分で入れたものなのか、エディットコントロールなのか
ユーザのブラウザ内でフォーカスがうつったのをどうやってサーバでひろうのか?
ASP.NETの基本はクライアントの処理はHtmlとJavaScriptで出来ることしか出来ない。
なぜか?それがわからなかったら、勉強しなおすべき。
0052nobodyさん2006/10/16(月) 13:37:25ID:???
>49
無料だから仕方ナインジャン。
FirstServerのサポートはまあまあ。
0053nobodyさん2006/10/16(月) 18:34:48ID:???
↓のサイトで、Gridviewのヘッダ行を固定させたのですが、
http://www.richardxin.com/FreezeHeader.aspx

ヘッダ行のborderが消えてしまうのですが、これを表示させる方法はあるのでしょうか?
0054nobodyさん2006/10/16(月) 19:21:25ID:???
DetailsView + ObjectDataSource を使って、
データの更新画面を作っているのですが、なぜか
「更新」のリンクをクリックしても ObjectDataSource の
Updating イベント ハンドラが動きません
(ブレーク ポイントを仕掛けていますが引っかかりません)。

ありがちなミスで考えられるものがあったら
お教えください。
0055nobodyさん2006/10/16(月) 20:00:13ID:???
ブレークポイントを仕掛けるべきは更新リンクのクリックイベントハンドラだったりして・・・
0056542006/10/16(月) 20:37:22ID:???
>>55
情報ありがとうございます。
しかし更新リンクのクリックについては、
DetailsView の ItemUpdated ハンドラに来ているので問題ないと思います。
その後、Visual Web Developer を立ち上げなおしたら
ちゃんと止まってくれました。すみません…。

重ねて申し訳ないのですが、今度は
ObjectDataSource の UpdateMethod で関連付けたメソッドに
パラメータが渡らず困っています。
関連付けたメソッドは呼ばれるのですが、パラメータが全て
Nothing になってしまっています。(値型の場合は 0)
考えられそうなミスはありますでしょうか…?
0057nobodyさん2006/10/17(火) 00:35:14ID:???
良くあるのがデータバインド後にイベント拾ってる。
空データをバインドすりゃ、当然中身もなくなるわな。
0058542006/10/17(火) 01:34:33ID:???
>>57
情報どうもです。
元々は ObjectDataSource と DetailsView を
つなげたいだけだったのですが、データを更新しようとすると
ObjectDataSource で InvalidOperationException が起き、
ごちゃごちゃやってるうちに自分でデータバインドするしかないのか?と
思い始め UpdateMethod をいじっています。

そもそも ASP.NET 2.0 では DataBind() しなくてもいい、
と最初に思っていたのですが、違うのでしょうか?
そもそも、更新時に例外が起きてるのが問題外のような気も…。
どうやったらまともにデータ更新処理が作れるのか…錯乱状態です。
0059nobodyさん2006/10/17(火) 11:06:05ID:???
Visual WebDev Express と Oracle (ODP) で開発する時って
データ プロバイダは System.Data.OracleClient と
Oracle.DataAccess.Client とどっちがよさげですか?
ウィザードでデータ コンポーネント作れるので、
System.Data.OracleClient のほうがよさそうに見えるんですが。
※ODT は Express じゃ使えない
0060nobodyさん2006/10/17(火) 22:43:48ID:???
System.Data.OracleClientはMicrosoft社製。
ODP.NETとして提供されるのがOracle.DataAccess.Client。
性能はOracle.DataAccess.Clientの方が良い。
(ウィザードは使わないので知らん)

だがODP.NETはWave Dashの処理がうっとしい。
0061592006/10/18(水) 00:34:13ID:???
>>60
Oracle のデータベースは JA16SJISTILDE で構築する予定です。
それでも何かアプリ側で対応が必要なんでしょうか?
0062602006/10/18(水) 07:13:48ID:???
Oracleに書き込む時のUnicodeからJISへのマッピングが、
MSとOracleで違う。
ODP.NETで「〜」を書き込んでOracleから取り出すと、
「〜」がひっくり返った文字になっている。
んでもってそれをSJISに変換すると対応文字がないから「?」になる。
0063nobodyさん2006/10/18(水) 14:55:44ID:???
>>62
詳しい情報どもです!
質問続きで恐縮なんですが、もし ODP.NET で 〜 を書き込んでも
文字化けを起こさないようにするとしたらどんな対策が考えられますか?
0064nobodyさん2006/10/18(水) 21:17:40ID:???
JA16SJISTILDEで構築するなら問題ないよ。
0065nobodyさん2006/10/19(木) 00:39:39ID:???
JavaでWindows上でOracleを使うとき化ける文字だけ一覧を作って自前で置換なんて悲しい対処をしてたなぁ。
SQLServerだとそういうときは安心だった気がする。
0066nobodyさん2006/10/19(木) 17:45:28ID:???
ASP.NET 2.0 と C#にて、サーバからテキストファイルをクライアントにダウンロードさせる処理を実装しようとしています。
この処理を通常のブラウザウィンドウ上から行うと正常にダウンロードできるのですが、
JavaScriptのShowModalで表示した画面から行うと、ダウンロードのダイアログが出てこず、うまくいきません。
ダウンロードする部分のコードは以下のようにしています。

Response.ContentType = "application/octet-stream";
Response.AddHeader("Content-Disposition", "attachment; filename=hoge.txt");
Response.Flush();
Response.WriteFile("hoge.txt");
Response.End();

モーダルダイアログからダウンロードすることは出来ないのでしょうか?
0067nobodyさん2006/10/19(木) 20:46:55ID:???
>>66
サーバのファイルをダイアログで公開するとはどんな仕様?
しかも、JavaScriptってクライアント側の処理をするものだよね?
サーバーサイドでやってよいこと、クライアントで出来ることを落ち着いて考えよう
0068nobodyさん2006/10/20(金) 01:46:59ID:???
>>66
ぱっと思いつく解決方法としては

ファイルダウンロードを実装したhoge.aspx、を表示するFRAMESETを記述したhage.html、を作って、
showModalで表示するページをhage.htmlにする。
0069nobodyさん2006/10/20(金) 16:03:39ID:???
>>68
出来ました!ありがとうございました。
0070632006/10/20(金) 22:37:59ID:???
>>64
情報どうもです。JA16SJISTILDE で文字化けしないことが確認できました。
しかし、サーバ側でローカルのテキスト ファイル(Shift_JIS)に
出力をしたら化けてしまいました…。
Unicode から Shift_JIS への変換でも、JA16SJISTILDE を使っていれば
化けないと思ったのですが…なぜでしょう?
0071nobodyさん2006/10/20(金) 23:43:21ID:???
ODP.NETは
OracleCommand.TransactionがReadOnlyだったのに、ムカツイタ
0072nobodyさん2006/10/21(土) 11:04:22ID:???
文字コード変換をすれば化けるのは当然。

"〜"文字(SJISコード:8160)→WAVE DASH(Unicode:301C)→FULLWIDTH TILDE(cp932:FF5E)

ttp://support.microsoft.com/kb/170559/ja
[PRB] SHIFT - JIS と Unicode 間の変換問題

文字列をバイナリのまま扱って、変換テーブを自分で持って表示の時点で変換するのが一番問題が少なく対応もしやすい。
システムとか出来合いの物だと、落とし穴が有るし、仕様を満たさない場合の対処が面倒。
0073nobodyさん2006/10/22(日) 21:17:41ID:???
最近佐賀ネタでスレ違いの書き込みが増えている。
佐賀県庁・佐賀県警・談合・痴漢・情報漏洩などの内容だ。
銀行が潰れるとしたデマが回り騒ぎが起きたこともある。
このような書き込みは慎むべきだ。

被害防止のため常駐するスレに啓蒙してくれ。
0074632006/10/23(月) 21:40:17ID:???
>>72
ありがとうございます。
ご指摘の通り Shift_JIS から Unicode にしちゃうとダメというのは
分かりました。ただ、テキストへの出力では
Unicode → Shift_JIS しかしていない(はず)ので
化けないと思ったのですが…何か大きな勘違いをしている…?
0075nobodyさん2006/10/24(火) 09:26:40ID:???
ASP.NET 2.0 で ObjectDataSource を使った
データ バインディングについて教えてください。

ObjectDataSource 経由で呼び出すメソッドの引数が増えてしまうので
DataObjectTypeName プロパティを指定したのですが、
これにセッションの値などを渡したい場合はどうしたらいいのでしょうか?
DataObject をアプリケーション側で設定するタイミングが分からず、
上記の疑問が解決できません。
0076ASP.net初心者(Cシャーパー)2006/10/29(日) 00:23:40ID:???
FirstServer等で月額525円でASP.netにて作成したシステムを動かす
事が出来るみたいなのですが、実際に作成したASP.netのシステム
(プログラム)とローカル(自分のマシン)にて構築したデータベースは、
そのASP.netサービスを提供している会社のサーバへどの様に転送するのでしょうか?

VNCみたいな形でターゲットとなる(サービスを提供している)サーバに
対して接続が出来、尚且つプログラムとデータ(データも)を乗っける
事が出来るのでしょうか?
0077nobodyさん2006/10/29(日) 01:51:47ID:???
サービス提供してる会社に聞けよ
初心者が免罪符になると思ってる奴ウゼぇ
0078 2006/10/29(日) 01:53:37ID:???

>>77
死ね
0079nobodyさん2006/10/29(日) 02:02:49ID:???
あえてツッコむとすれば、VNCに転送機能はない
0080nobodyさん2006/10/29(日) 07:36:57ID:???
せいぜいリモートデスクトップだけど、クライアント数でライセンスが発生するから月額利用料を抑えたいレン鯖には向かないと思う。
おまいがクライアントライセンス料を負担してやれば良いんじゃね?

だから、utfからsjisに変換したつもりでも、ウィンドウズ環境ならcp932に変換してしまっててコードが違ってるってヲチでしょ。
javaのローカルコードに勝手に変換する機能って、日本語環境の場合、ゴミだよね。
0081nobodyさん2006/10/29(日) 09:40:17ID:???
「だから」?
0082nobodyさん2006/10/29(日) 16:28:48ID:???
なんで>>76>>78の目欄同じなん?
0083nobodyさん2006/10/29(日) 18:49:59ID:???
そっとしといてやれよ
最近の厨房様は何か気に触ることがあるとすぐ嵐になるから
0084nobodyさん2006/10/29(日) 21:08:23ID:???
>76

WebでSQL Serverを管理できる画面を提供してるところが多いね。
CREATE文を流してから、CSVでアップロードする。
CSVアップロードがないところは、INSERT文で移行するしかない。orz
0085762006/10/29(日) 22:02:06ID:???
>>84
>WebでSQL Serverを管理できる画面を提供してるところが多いね。
>CREATE文を流してから、CSVでアップロードする。
因みにCSVをサーバにアップロードした後にDB2で言うところの
ロード処理等をする事によって、CSVファイルをサーバ上のDBに
取り込むという事なのでしょうか?
0086nobodyさん2006/10/30(月) 00:57:12ID:???
>85

いや、SQLサーバへCSVをインポートする画面があるのだ。

タダだから、とりあえず登録してみたらどう。
http://www.fsdotnet.jp/express/order.html
0087762006/10/30(月) 01:09:43ID:???

>>86
登録してみました。
ただ、今のオレの環境がWindowsXP(Home)
でSQLServer等をインストールが出来ないからAccessをターゲットにして
コーディングをした後に、サーバにアップロードするつもりです。

とりあえず、***ユーザ名/default.aspxという適当なファイルを作成して
表示されるところ迄は何とか漕ぎつけました。

0088nobodyさん2006/10/30(月) 14:15:18ID:???
>87

SQL ServerExpressEditionなら、XP Homeでもインストールできるよ。
http://www.microsoft.com/downloads/details.aspx?FamilyID=220549b5-0b07-4448-8848-dcc397514b41&DisplayLang=ja

Visual Web Developer入れてたら、既にインストールされてると思うけど。
http://www.microsoft.com/japan/msdn/vstudio/express/vwd/
0089nobodyさん2006/10/30(月) 20:00:19ID:???
>>87
VMWarePlayer or VirtualPC2004にXPProやWindows2003R2体験版を入れるって手もある。
...というかMSDE(SQLServer2000ベース)ってHomeでも動かなかったっけ?
0090nobodyさん2006/10/30(月) 21:36:34ID:???
初心者をいじめない
0091872006/10/31(火) 08:08:47ID:???
>>88,89
どうもご回答をありがとうございます。
早速、 Visual Web Developerをとりあえずインストールしてみます。
0092nobodyさん2006/11/01(水) 19:21:37ID:???
素人ゴミ質問で申し訳ないんだけど・・・
ASP.NETで開発したWEBサーバーを公開するときに必要なライセンスって何ですか?
WindowsサーバーとVisual Studio Professionalを購入したときのライセンスさえあれば問題ないのでしょうか?
0093nobodyさん2006/11/01(水) 21:44:54ID:???
>>92
つ 俺ライセンス
0094nobodyさん2006/11/01(水) 22:43:24ID:???
Windows2003の場合だけど。
http://www.microsoft.com/japan/windowsserver2003/howtobuy/licensing/EULA.mspx

3. 追加のライセンス条件および追加の使用権
a.クライアントアクセスライセンス (CAL)
インターネットのみを通じて本サーバー ソフトウェアのインスタンスにアクセスし、
かつアクセスの際に認証を受けず、また本サーバー ソフトウェアにより個々に識別されないユーザーまたはデバイスに対しては、CAL は必要ありません。


質問する前にとりあえずライセンス条項読んでみてちょーだい。
0095nobodyさん2006/11/02(木) 00:17:30ID:???
Visual Web Developer をインストールしたのですが
肝心のSQL Serverの環境が無い為にローカルで作成したプログラムを
FirstServer上に以降する事が出来ません。

Windows XP(HOME)にて動作するSQL Serverはありますか?
0096nobodyさん2006/11/02(木) 00:35:04ID:???
>>95
VWDインストールしたときに、
SQLServerExpressEditionもインストールされなかったか?
0097nobodyさん2006/11/02(木) 00:36:46ID:???
ローカルテストだけならMSDE2000じゃ駄目なん?
0098nobodyさん2006/11/02(木) 08:24:26ID:???
>>96
されませんでした。

>>97
最終的には、ローカルで稼動が確認出来たらサーバレンタルを
する事を考えております。
その為にどうしてもSQL Serverとの連動をローカルで確認したいと
考えています。
0099nobodyさん2006/11/02(木) 08:34:17ID:???
>>94
どもです。
エクスターナルラインセンスとクライアントアクセスライセンス
というのがあるんですね。
必要な物が見えてきました。
0100nobodyさん2006/11/02(木) 23:08:59ID:???

SQL Server 2005 Expression Edition はやはり
Windows xp Home だとダメでしょうか?
お金が勿体無いのでProfessional は買いたくありません。
0101nobodyさん2006/11/02(木) 23:48:57ID:???
厨房様は、なぜ公式サイトで確認しないのか
http://www.microsoft.com/japan/sql/editions/express/sysreqs.mspx
0102nobodyさん2006/11/03(金) 00:08:34ID:???

>>101
やっぱり Pro 買わなくちゃだめなのか。
0103nobodyさん2006/11/03(金) 00:14:33ID:???
MSDEはHomeでも大丈夫のようだ。
GUIの管理ツールがなくて、Accessをフロントエンドにしていたあの頃がなつかしい。。。
0104nobodyさん2006/11/03(金) 00:22:12ID:???
>100
MSDE
http://www.atmarkit.co.jp/fwin2k/win2ktips/583msde/msde.html
0105nobodyさん2006/11/03(金) 01:30:04ID:???
http://msdn2.microsoft.com/ja-jp/library/ms143506.aspx
ここみるとExpressEditionもHomeで動くてなってるけど、これはどっちが正しいんだ・・・

どちらにせよ、
テストするだけなら、Professionalなんか買わないで、
Developer Editionで、十分じゃん
0106nobodyさん2006/11/03(金) 02:03:16ID:zomZFxit
>>95

手元で作ったデータベース(構造+データ)を
FirstServer の SQL Server に設置(引越し作業)するのは
無駄に、激しくしんどいぞ。
(無理と言ってもよいほどだ)

手元の環境整える前に(SQL 2005 Dev. Edition もしくは XP Pro. 購入?)
FirstServer の SQL Server がどんなものか確認することをお勧めする。

0107nobodyさん2006/11/03(金) 03:27:21ID:???
ファーストサーバ以外の共用ASP.NET鯖はありませんか?
日本ではここだけでしょうか?
0108nobodyさん2006/11/03(金) 10:08:36ID:???
PHPやJavaでWeb開発経験あるんですが、ASP.NETは今回初めて。
きになるのがHTML部分。
*.aspxだとテキストボックスもボタンも独自タグですよね。
それがコード側と連動してたりするし。
ただデザインのこと考えると普通のHTMLタグの方が良いかなと思ってしまいます。
HTMLで普通のタグ使って、Page.RequestからPostされたパラメータ読むってナンセンスですかね?
0109nobodyさん2006/11/03(金) 13:19:21ID:???
>デザインのこと考えると普通のHTMLタグの方が良いかなと思ってしまいます。
そりゃまたどうして?
01101082006/11/03(金) 14:11:42ID:???
dreamweaverとかホームページビルダーとかもaspには対応してるみたいですけど、
誰もが手打ちでさくっと直せるという点で、HTMLタグのがよいかなぁと。
0111nobodyさん2006/11/03(金) 20:49:53ID:???
>>103,104
サンクス
0112nobodyさん2006/11/03(金) 20:53:30ID:???
>>106
>手元の環境整える前に(SQL 2005 Dev. Edition もしくは XP Pro. 購入?)
>FirstServer の SQL Server がどんなものか確認することをお勧めする。
いまいちFirstServerのマニュアルが分かりずらかったのですが頑張って
試してみます。
0113 2006/11/03(金) 21:42:08ID:???
FirstServerのマニュアルには WebMatrixを使用した以降方法については
記載されているのですが、MSホームページではどうやらサポートが終了
した様です。

ローカルマシンにMSDEとMicrosoftVisualWebDeveloperのセットで作成した
アプリ(プログラム部分です。)をFirstServer上のデータベースと連携させる
にはどうしたら良いですか?

0114nobodyさん2006/11/03(金) 21:50:48ID:???
あなたは今までに何を試したのですか?
0115 2006/11/03(金) 22:14:56ID:???
http://www.atmarkit.co.jp/fwin2k/win2ktips/583msde/msde.html
のページを参考にしてコマンドプロンプトより
 osql -E
と入力してもうまく起動されません。しかもMSDEのアイコンも
タスクトレイに表示されていないのですが、インストールに失敗した
という事なのでしょうか?

※マニュアル通りコマンドプロンプトより setup ぱすわーど と実行した
後、更新用パッチもダウンロードしてインストールは完了済です。
0116 2006/11/03(金) 22:15:50ID:???
>>114
触り部分だけです。。。

【エラー内容】になります。
[SQL Native Client]Named Pipes Provider: Could not open a connection to SQL
Server [2].
[SQL Native Client]Login timeout expired
[SQL Native Client]An error has occurred while establishing a connection to
the server. When connecting to SQL Server 2005, this failure may be caused by
the fact that under the default settings SQL Server does not allow remote
connections.
0117 2006/11/03(金) 22:28:23ID:???


再起動をしたらアイコンが表示されました。
これから幾つか試してみたいと思います。
0118nobodyさん2006/11/04(土) 00:03:43ID:4/29Ul19
表示コントロール数の多い画面で、コントロールの表示状態制御のコードがPageクラスにゴチャゴチャ増えてしまうのですが、
こういう時って皆さんどんな風に書いてますか?

Pageクラス自身にあまりロジックをゴリゴリ書くのはスマートじゃない気がするのですが、
こんな場合に使うといいパターンとかあったら教えてください。
0119nobodyさん2006/11/04(土) 08:36:51ID:???
そういや、IE7出たけど皆大丈夫かい?
0120nobodyさん2006/11/04(土) 08:47:04ID:???
>>118
M・V・C!M・V・C!

>>119
社内ではIE6で統一されてるから無問題〜
とはいえ情報は集めておかないとね。
0121nobodyさん2006/11/04(土) 09:21:53ID:???
英語版と日本語版のページを作らないと行けません。
デザインが微妙に違うため両者の*.aspxは別々に作ることになります。
ただ入力項目は同じなのでフォーム送信したときの処理は同じです。
どうやって処理をまとめるのが良いかで悩んでます。
今、自分が考えているのは、
- Pageクラスを継承してCommonPageクラスを作る
- CommonPageを継承して、日本語版aspxと対になるJpPageクラスを作る
- CommonPageを継承して、英語版aspxと対になるEnPageクラスを作る
- CommonPageの送信ボタンクリックイベントで、FindControl("コントロール名");を使ってコントロールの値を取って、検証、DBに保存
という感じなんですが、もっと良いアプローチはありますか?
0122nobodyさん2006/11/04(土) 10:52:29ID:???
本当に継承を使う必要があるのか良く考えた方が良いと思う
べつに検証する共通処理等はクラス化するぐらいでいいんじゃないかなぁ
0123nobodyさん2006/11/04(土) 11:32:24ID:???
>>121
フォーム送信した時の処理に必要な値は、クラスにまとまる?

よくやるのが、フォームに型付DataTable/DataRow型のプロパティ作って、
そこから、TextBoxやDropDownListから値をまとめて取得する。

そのクラスを受け取って、処理を行う。

PetShopのソースを参考にした。
0124nobodyさん2006/11/04(土) 19:53:32ID:???
基礎中の基礎で申し訳ないのですが、
あるコントロールのControls に配置された TextBox に値を入力し、
Buttonコントロールの Click イベントで
TextBox の値を取得するにはどうしたらよいのでしょうか。
(階層化された任意のコントロールを取得するには)

今までは、(以下例)
textBox = this.Table1.Rows[0].Cells[0].Control.FindControls("id");
のような形で取得していたのですが、this.Page.FindControl() などから
拾えないかと思い、UniqueIDを利用してみたのですが、
UniqueIDの発生が遅れている?ようで、コントロール生成時にUniqueID
を参照しても Null になっています。

アドバイス等ありましたら、どうかよろしくお願いします。
また、誘導や解説サイトなどありましたらお教えくださると助かります。
0125nobodyさん2006/11/05(日) 01:49:58ID:EttKzQyd


Microsoft Web Developer と MDBを連動させてASP.netを体験する
事は出来ないでしょうか?

WindowsアプリとMDBは問題無くデータ接続をする事は出来るのですが
ASP.netとMDBはどうも出来ません。

0126nobodyさん2006/11/05(日) 03:17:25ID:???
>>125
そんなばかな……
なにを、
どうやって、
どうできないんだ?
0127nobodyさん2006/11/05(日) 08:45:25ID:???
>>125
つ ttp://msdn2.microsoft.com/ja-jp/library/445z2s49(VS.80).aspx
0128nobodyさん2006/11/05(日) 13:05:32ID:???
以下のようにPrepare使ってinsertしてるんですが・・・
 SqlCommand cmd = new SqlCommand("insert into hoge (name) values(@name)", con);
 cmd.Prepare();
 cmd.Parameters.Add(new SqlParameter("@name", myobj.getName()));
 cmd.ExecuteNonQuery();
このときmyobj.getName()がnullだと、ExecuteNonQuery()で例外発生します。

 if (myobj.getName() != null) {
  cmd.Parameters.Add(new SqlParameter("@name", myobj.getName()));
 } else {
  cmd.Parameters.Add(new SqlParameter("@name", DBNull.Value));
 }
このようにnullじゃなく、DBNull.Valueを渡すと良いのですが、
そこらじゅうで、こういう分岐書きたくない・・・
nullを渡してもうまくいくような、スマートな方法は用意されてないですかね。
普通に自前で関数化?
0129nobodyさん2006/11/05(日) 18:29:07ID:???
myobj.getName()がnullの代わりにDBNull.Valueを返せばいいじゃない
0130nobodyさん2006/11/05(日) 20:16:37ID:???
>>120
PageクラスってMVCでいうとコントローラとViewのどっちになるんでしょうか?
コントローラだとすると表示制御ロジックを書くのはいけない気がするんですが、Viewだとすればいまのままでいいような気も・・・。
0131nobodyさん2006/11/05(日) 21:02:44ID:???
>>129
うーん、それがgetName()の戻り値はstring型なんだよぬ。

>>130
Pageクラスはコントローラ。対応する*.aspxがView。
0132nobodyさん2006/11/05(日) 21:04:28ID:???
クエリビルダで作ったInsert文で、
日本語項目を含んだレコードをINSERTってできますか?

どうしてもValuesに
':項目名'

ってなってしまうのですが・・・
(データに「項目名」という文字列が挿入される)

無理矢理に
:"項目名"
とダブルコーテーションで囲っても、実行すると
バインドできませんでしたというエラーが出ます・・・。

DBはOracle10gです。
どなたか、解決法など教えていただけると助かります。
よろしくお願いします。
分かりにくい文章ですみません。
0133nobodyさん2006/11/05(日) 21:20:34ID:???
>>131
レスありがとうございます。
なるほど。
その場合、表示項目の制御のロジック(ifで判定してEnabled=falseなど)はやはりコントローラに書くべきなのでしょうか?
それともそこもビジネスロジックとしてModelで処理するように切り出すべきでしょうか?
0134nobodyさん2006/11/05(日) 21:28:40ID:???
>>133
Enableってプロパティに値を設定するのは、コントローラの役割ですね。
View側は、あくまでモデルの参照しかしない。
たとえば、ある値が配列に入っていて、その要素数分HTMLに表示するときのループ処理はaspxに書いちゃいますね。
それはView(見た目)の問題であって、コントローラの範疇じゃない、と自分はとらえます。
ASP.NETの場合は、Tableとかもコントロール化されてるから、
Pageクラスの中に実装できて、こういう機会は減りますけど、
PHPとかJSPでは表形式で出力するときは、View側にそのループを書いてます。
ただし、表形式で表示しやすいフォーマットにモデル化するのはコントローラの役割。
0135nobodyさん2006/11/05(日) 23:29:16ID:???
WindowsXPSP2/Visual Web Developer2005でWebサービス作ってるんだけど、
メニュー→Webサイト→Webサイトのコピー→接続で
リモートサイト(実体はローカルホスト)で http://localhost/foobar/ と入力すると
(foobarはWebサービスのプロジェクト名)
ユーザ名とパスワードを要求されるようになりました。
昨日まではユーザ名を要求されるなんて無かったんです。
本日、IE7を入れてからこんなことになってしまいました。
で、ログインユーザを入れてもでもダメ、ASPNET(パスワードわからん)でもダメ。

このユーザ名には何を入れればいいんでしょう?
0136nobodyさん2006/11/05(日) 23:30:47ID:???
>>131
つ [オーバーライド]
0137nobodyさん2006/11/05(日) 23:57:41ID:???
>>132
名前つきパラメータのこと??
01381352006/11/06(月) 09:06:59ID:???
OS再起動したら直りました。わけわからん。
0139nobodyさん2006/11/06(月) 17:34:36ID:???
ASP,NETのValidatorって、クライアントで処理されるけど、
これってサーバーでは一切検証しないってことなのかな?
なんかのツール使って検証対象外のデータを送ってくるような
チート対策は大丈夫なんだろうかと不安です。
0140nobodyさん2006/11/06(月) 21:49:39ID:???
外から入ってくるデータはすべて疑え!
0141nobodyさん2006/11/06(月) 22:36:25ID:???
>139

Page.IsValidすべし
0142nobodyさん2006/11/06(月) 23:59:02ID:???
なるほど。Page.Validate()呼び出せばサーバーで検証されるのね。
これは自動的に呼び出されるんだろうか。
0143nobodyさん2006/11/07(火) 00:31:09ID:???
>>142
Page.Validate()メソッドではなく、
>>141の言うように、検証が必要な個所(ButtonのClickイベントハンドラー等)で、
最初にPage.IsValidをチェック
0144 2006/11/07(火) 00:52:30ID:I6CNeWUi
>>126,127
とりあえず、Web Data Administrator をインストールし頑張って
います。もしご存知でしたら教えて頂きたいのですが
MSDEのインストール時に設定したパスワードを(プロンプトより
引数としてパスワードを設定しました。)

WDAのログイン画面に入力しているのですがログイン出来ません。

sa
password

・Windows Integrated
・SQL Login
→それぞれ選択し直してやってはいるのですがやはりダメです。何
が原因なのでしょうか?

0145nobodyさん2006/11/07(火) 01:07:40ID:???
エラーメッセージは?
0146nobodyさん2006/11/07(火) 01:09:45ID:???
>>134
レスありがとうございます。
大変参考になりました。

とりあえず、条件判定部分をModelに切り出してControllerではModelの値をViewに設定するだけになるように実装しようと思います。
0147nobodyさん2006/11/07(火) 01:10:41ID:???
Validatorで思い出したけど、
JavaScriptの正規表現がECMAScript準拠なせいで、
RegularExpressionValidatorで、Unicodeクラスとか使えね……
ClientScriptOffにしろっていわれてもねー

JavaScriptもっとちゃんと仕事しろ!!
0148nobodyさん2006/11/07(火) 10:54:48ID:???
処理時間が短いことがわかっている場合にはPageがロードされるときに
処理をすればよいと思うのですが、処理に時間がかかる場合に
しばらくお待ちください というようなメッセージを出しつつ
裏で動かすにはどうしたらよいでしょうか?
■ このスレッドは過去ログ倉庫に格納されています