[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 2ch.scのread.cgiへ]
Update time : 02/29 10:30 / Filesize : 136 KB / Number-of Response : 536
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

ふらっと C#,C♯,C#(初心者用) Part119



1 名前:デフォルトの名無しさん mailto:sage [2016/01/31(日) 00:52:20.67 ID:OtXGSzkV.net]
「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。

他のスレッドでは書き込めないような低レベルな質問、
質問者自身なんだか意味がよく分からない質問、
ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。

内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。

なお、テンプレが読めない回答者は邪魔なので後述のC#相談室に移動して下さい。

>>980を踏んだ人は新スレを建てて下さい。
>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。

■前スレ
ふらっと C#,C♯,C#(初心者用) Part118 [転載禁止](c)2ch.net
peace.2ch.net/test/read.cgi/tech/1448207673/

■関連スレ
C#, C♯, C#相談室 Part89 [転載禁止](c)2ch.net
peace.2ch.net/test/read.cgi/tech/1443271409/

■コードを貼る場合は↓を使いましょう。
ideone.com/

482 名前:デフォルトの名無しさん mailto:sage [2016/02/22(月) 13:35:45.29 ID:vpSvShmB.net]
追加で質問ですが、staticな変数は使わないとあるけど
たとえば1000人の顧客データがDBに入ってるとして、
画面ごとに1000人のデータをDBから引っ張ってくるのがいいってこと?
今作ってみてるのは、初回起動時にDBからデータとってきて
staticな顧客情報クラスのプロパティに読み込んでそれを使い回してるんだけどだめ?

483 名前:デフォルトの名無しさん mailto:sage [2016/02/22(月) 13:45:24.22 ID:8Ue91Bmo.net]
>>482
まず

・あなたが作っているのはWebサーバなどサーバ上で動くアプリ?
・それともWindows10など、クライアントOS上で動かすアプリ?

のどっちです?

484 名前:デフォルトの名無しさん mailto:sage [2016/02/22(月) 13:59:27.59 ID:vpSvShmB.net]
>>482
クライアント上で動作するWindowsフォームです
MySQLと連携させてます

485 名前:デフォルトの名無しさん mailto:sage [2016/02/22(月) 14:25:03.48 ID:eN79gWGq.net]
>>484
それならwinフォーム側(c#)の設計はそれでいいんじゃない?
スレッドセーフは特に関係ない。

SQLサーバ上のデータを複数人で操作した時のことを心配しているなら
それはDBMSの話でこのスレとはちょっと方向がズレる。
まぁ複数テーブルを変更するならc#側で適切なトランザクション制御をする必要はある

何を心配してスレッドセーフというキーワードが出てきたの?

486 名前:デフォルトの名無しさん mailto:sage [2016/02/22(月) 15:49:01.26 ID:XzDT2iuo.net]
彼?が聞いていたのは「staticのDataTableにrow100件追加すると重くなる何で?」だったと思う

487 名前:デフォルトの名無しさん mailto:sage [2016/02/22(月) 17:40:37.15 ID:iE2GkHGd.net]
a | b | c
見たいな式でbが含まれてないか調べる方法ってどうすればええんでしょうか?

488 名前:デフォルトの名無しさん mailto:sage [2016/02/22(月) 17:41:43.60 ID:DP7yI1JH.net]
>>482
そんな理由でstaticは止めとけ。

489 名前:デフォルトの名無しさん mailto:sage [2016/02/22(月) 17:44:32.52 ID:DP7yI1JH.net]
>>487
!"a | b | c".Contains('b')

490 名前:デフォルトの名無しさん mailto:sage [2016/02/22(月) 18:55:25.80 ID:1zVJqqIu.net]
スレッドセーフなつくりに関しては

このサイトが非常に分かりやすくて勉強になりました
blogs.msdn.com/b/nakama/archive/2008/12/18/9231090.aspx


こういったことが載ってる書籍ってありますか?



491 名前:デフォルトの名無しさん mailto:sage [2016/02/22(月) 19:24:09.33 ID:Vk7WMYI1.net]
>>490
オライリーの平行コンピューティング技法
マルチスレッドは小手先のノウハウより基礎が大事

492 名前:デフォルトの名無しさん mailto:sage [2016/02/22(月) 20:37:34.94 ID:BBvTeRCQ.net]
>>487
式でって、構文解析でもやってんの?

493 名前:デフォルトの名無しさん mailto:sage [2016/02/22(月) 20:39:55.32 ID:xw1fAbOE.net]
C#でDBアクセスする,っていったら普通はどうするの?ADO?

494 名前:デフォルトの名無しさん mailto:sage [2016/02/22(月) 20:57:11.31 ID:qgHj34IQ.net]
クラサバならDataSet、WebならEF

495 名前:デフォルトの名無しさん mailto:sage [2016/02/22(月) 20:58:34.94 ID:XPqXIrud.net]
上司が戦前生まれのおじいちゃんでmapperは許さないと言うならADO.NETしかないだろうね
そうでなければコンテキストのアーキテクチャにマッチしたものを自由に使えばいい
ただし僕の考えた最強のDataBaseCommonは避けたほうが賢明だ

496 名前:デフォルトの名無しさん mailto:sage [2016/02/22(月) 21:06:43.09 ID:xSKr2cZb.net]
>>493
EntityFramework

497 名前:デフォルトの名無しさん mailto:sage [2016/02/22(月) 22:46:47.35 ID:hopELxhL.net]
最近はドキュメントストアとイベントストアばかりだわ
リレーショナルとか今更バカバカしくなる

498 名前:デフォルトの名無しさん mailto:sage [2016/02/22(月) 22:47:21.82 ID:sza9ynkf.net]
SHDocVw.InternetExplorerを使ってIEを操作していって
ETC利用紹介サービスのサイトでPDFの明細を表示するところまで行ったのですが
この後このPDFをローカルファイルとして保存するにはどうしたら良いでしょうか
もしくはPDFをダウンロードできるURLを知る方法を教えて下さい

ETC利用照会サービス
www.etc-user.jp/index.html

最終的にIE上でPDFを表示させた時のURLはこんなかんじ
https://www2.etc-user.jp/NASApp/etc/Etc-User;jsessionid=0001EA5B7G0OeSIFI_z1DoRH:11fqrass0?パラメータいっぱい&funccode=1011110000&nextfunc=1011111000&x=0&y=0

499 名前:デフォルトの名無しさん mailto:sage [2016/02/23(火) 01:01:54.38 ID:+adornFd.net]
パケットキャプチャしてその通りにアクセスすれば良いよ

500 名前:デフォルトの名無しさん mailto:sage [2016/02/23(火) 04:05:39.81 ID:iF53IQph.net]
質問します

100個のチェックボックスがあります。
それらがチェックされた個数をカウントしたいのですが、流石にチェックボックス100個にイベントハンドラつけるのは大変なので別な方法を模索しています

今まで試したのは
チェックボックスのあるウィンドウにMouseUpとかそういう系統のイベントをつける
→MouseUp後にチェックボックスの状態が変わるようで不可

タイマを使って逐次カウンタ処理を走らせる
→カウンタ処理は他画面でも使い回す都合、別クラスにしています。
そのせいかどうか知らないけど、タイマとコントロールのスレッドが異なるので安全じゃない、例外で制御してね
みたいなメッセージが出てきて止まります

なんかこう、もうちょっと楽な制御方法はないのでしょうか。
こういう場合の定石みたいのがあるなら知りたいです



501 名前:デフォルトの名無しさん mailto:sage [2016/02/23(火) 04:26:28.46 ID:tEtmGt/9.net]
C#コード側でチェックボックスのコントロールを生成して配列にでもぶち込んでおけばいいんじゃまいか
forループでIsChecked調べればよろし

502 名前:デフォルトの名無しさん mailto:sage [2016/02/23(火) 06:39:35.45 ID:E2PPlRvu.net]
>>500
WindowsFormアプリ?

503 名前:デフォルトの名無しさん mailto:sage [2016/02/23(火) 08:17:56.09 ID:RYitu+qp.net]
涙目になりながらデザイナでイベントハンドラ設定してる所を想像した

504 名前:デフォルトの名無しさん mailto:sage [2016/02/23(火) 08:21:21.05 ID:kbsxNcQ6.net]
そのチェックボックスに結びついている何らかのモデルがあるはずだから、それを走査すればいい。

505 名前:デフォルトの名無しさん mailto:sage [2016/02/23(火) 08:39:41.98 ID:RYitu+qp.net]
スレッド云々に関しては、UI(WinFormsのタイマーも含む)は
作成したスレッド以外から操作してはいけない決まりがある
ControlはInvokeかBeginInvokeメソッドを持っているから
他のスレッドから触りたければそれらを経由して操作する

UIとスレッドのルールはWindows以外のプラットフォームでも大抵同じなので
覚えておくといつか役に立つかも
立たないかも

506 名前:デフォルトの名無しさん mailto:sage [2016/02/23(火) 11:37:42.35 ID:5c0zO2hz.net]
linqについてですが
DataTableに列Aと列Bがあって、列AにはBを変換した文字列を入れてます
Linqで一気にやろうと
dt.AsEnumerable().Select(row => row["A"] = henkan(row["B"].ToString()));
としてみたのですが上手くいきません
何が悪いんでしょうか

507 名前:デフォルトの名無しさん mailto:sage [2016/02/23(火) 12:29:24.57 ID:gpEp1eYY.net]
emitされてないって下らない理由だったらどうしよう

508 名前:デフォルトの名無しさん mailto:sage [2016/02/23(火) 12:46:43.35 ID:5HhRd+zG.net]
LINQ厨、答えてやれ。

509 名前:デフォルトの名無しさん mailto:sage [2016/02/23(火) 12:57:53.16 ID:+MN4l2JU.net]
emitって言葉有名ですか?
始めて聞いたんですが

510 名前:デフォルトの名無しさん mailto:sage [2016/02/23(火) 13:09:48.84 ID:JrRFhuQq.net]
普通はSQLで書く仕事だな



511 名前:デフォルトの名無しさん mailto:sage [2016/02/23(火) 14:07:32.88 ID:EM1+lJ6M.net]
エスパーじゃないんでうまくいきませんだけじゃちょっと

512 名前:デフォルトの名無しさん mailto:sage [2016/02/23(火) 14:31:40.10 ID:mDltGRvi.net]
>>510
SQLじゃ遅いからじゃね?

513 名前:デフォルトの名無しさん mailto:sage [2016/02/23(火) 14:45:30.79 ID:5c0zO2hz.net]
すみません、emitって初めてききました・・・
SQLに持っていく前に暗号化してUpdateしようとしてるんです
>>511
デバックで実行見てても変換処理に行く様子はなく、抜けたあとのdtについても
該当の列には変換後の値が入ってないんです

似たような一括置換の例見ていると .ToList()がついてるんですが、それが抜けてるせいでしょうか

514 名前:デフォルトの名無しさん mailto:sage [2016/02/23(火) 15:04:28.61 ID:EM1+lJ6M.net]
Select呼び出した時点では列挙は実行されない(遅延評価)
foreachすることで初めて評価される
ToList()とかCount()とかは即時評価

副作用のある処理はLINQのメソッドチェーン内では書かないのが無難
素直にforeachでいいんじゃない?

515 名前:498 [2016/02/23(火) 16:27:16.88 ID:lkjUbvnh.net]
>>499
なるほど!と思ってwireSharkってのを使ってみたけど難しすぎます。
でもよく考えたらPDFは既にIEに表示されてるからメモリ上にはファイルが有るわけで・・・
そこからローカルフォルダに保存となるとadobeを操作することになるんですかね。
こっちもちょっと自分にはハードル高いです。
webBrowserクラスからファイルの保存ボタン押せないか探ってみます。
ありがとうございました。

516 名前:デフォルトの名無しさん [2016/02/23(火) 16:39:37.63 ID:DVYg3A+E.net]
www.kurumaerabi.com/shop/detail/40003946/

517 名前:デフォルトの名無しさん mailto:sage [2016/02/23(火) 17:16:42.33 ID:5c0zO2hz.net]
>>514
Linq使い始めたところだったので勉強にになります
foreachで処理させました ありがとうございます

518 名前:デフォルトの名無しさん mailto:sage [2016/02/23(火) 18:53:15.86 ID:MLn0TlkP.net]
>>500
FormにはControlsと言うプロバティーがあって、ここに全てのコントロールが格納されています
定石はこのコントロールからCheckBoxを抽出して、foreachループでハンドラをセットして処理するのが一般的かな?
全てのコントロールからチェックボックスを抽出する方法とかコードでイベントをセットする方法を知っていれば簡単です

519 名前:デフォルトの名無しさん mailto:sage [2016/02/23(火) 20:08:51.57 ID:iF53IQph.net]
>>500です
みなさんのおかげで解決しました。
結局、コントロールを制御する関数をInvokeしてタイマの中に突っ込みました。
本来はこういう実装ならカウントアップスレッドを作ってその中でInvokeするのが正なのでしょうけどもスレッドは勉強することが多そうなのでとりあえずタイマで良しとします

いやあ、最悪MouseMoveをトリガにしようか悩んだのて助かりました

520 名前:デフォルトの名無しさん mailto:sage [2016/02/23(火) 21:14:59.21 ID:OvWSY5Gq.net]
>>475
動かしてみてエラーしたらその時点で対策すればいいよ



521 名前:デフォルトの名無しさん mailto:sage [2016/02/25(木) 18:30:48.11 ID:M2uXlhYi.net]
重たい処理をBackgroundWorkerにさせようと思うんだけど、
ネットで見てるサンプルはほとんど重たい処理のところに適当なループが書いてある
実際にやりたい処理は、別クラスのメソッドをいくつも呼び出すんだけど、
呼び出し先でWorkerReportProgressを更新するにはどうしたらいいの?

522 名前:デフォルトの名無しさん mailto:sage [2016/02/25(木) 20:01:46.64 ID:m/jN0scy.net]
無理に決まってんじゃん

523 名前:498 mailto:sage [2016/02/25(木) 22:15:35.13 ID:nblLHdJf.net]
解決しました
普通に拡張子pdfにしたらダウンロードできました
こんな単純なことで3日も悩んじゃった

524 名前:デフォルトの名無しさん mailto:sage [2016/02/25(木) 22:46:47.71 ID:bvnWfi3I.net]
>>521
更新処理を書いて渡すだけ

525 名前:デフォルトの名無しさん mailto:sage [2016/02/26(金) 01:10:33.96 ID:+59ndj2V.net]
>>524
すみません・・・もう少し具体的に教えて下さいませ

526 名前:デフォルトの名無しさん mailto:sage [2016/02/26(金) 09:11:43.07 ID:JdiTwSlc.net]
別クラスのメソッドとやらの仕様を具体的に教えてもらえないと教えてあげられません

そのメソッド変更できんの?できないの?
そのクラス進捗どうですか機能はあるの?ないの?

527 名前:デフォルトの名無しさん mailto:sage [2016/02/26(金) 09:49:52.84 ID:fV5IfbGO.net]
どうせないないづくしだとおもったので
無理に決まってんじゃんっていったよ

528 名前:デフォルトの名無しさん mailto:sage [2016/02/26(金) 10:21:22.48 ID:LwzDqGm0.net]
>>521
Taskを使ったら?

529 名前:デフォルトの名無しさん [2016/02/26(金) 11:04:27.42 ID:1jTGKv1k.net]
hatedaihatsu.web.fc2.com/2.html

530 名前:デフォルトの名無しさん mailto:sage [2016/02/27(土) 22:33:21.13 ID:cpgi4D1s.net]
パラメータをフラットに扱いたいです。

tag type human
tag sex man

このように、種別や性別のメンバを持たせるのでなく、tagに統合して扱おうと思ってます。

obj.tag[sex]==man
obj.tag[sex]==man & woman
obj.tag[sex]+= woman

こんな感じで比較したり追加したいのですが、
こういう都合のいいコレクションってありますか?

比較の際に値が含まれてたらtrueでいいんですけど、たまに複数で比較したいときもあると思います。



531 名前:デフォルトの名無しさん mailto:sage [2016/02/27(土) 23:04:36.18 ID:F0cA5DZY.net]
>>530
ここはC#のスレなんだけど

532 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:sage [2016/02/27(土) 23:54:34.85 ID:Bxm5eu58.net]
>>530
ビット演算

533 名前:デフォルトの名無しさん mailto:sage [2016/02/28(日) 09:45:59.90 ID:5lqkohLH.net]
>>530
それはコレクションではなく、その要素の型の問題だべ。

534 名前:デフォルトの名無しさん mailto:sage [2016/02/29(月) 07:17:09.96 ID:nhRiUMTh.net]
doubleの数値aを条件式でa<10ならbみたいな処理ってどうするの?

535 名前:デフォルトの名無しさん mailto:sage [2016/02/29(月) 07:18:54.21 ID:s/kIhvzC.net]
if (a < 10) b;






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<136KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef