X



ふらっと C#,C♯,C#(初心者用) Part146
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん (ワッチョイ 9f0b-Fgt1)
垢版 |
2019/12/11(水) 22:12:11.28ID:d09CciDz0
!extend:checked:vvvvv:1000:512
次スレを立てる時は↑を2行冒頭に書くこと(1行分は消えて表示されない為)

「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。
他のスレッドでは書き込めないような低レベルな質問、質問者自身なんだか意味がよく分からない質問、
ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。
内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。
なお、テンプレが読めない回答者、議論をしたいだけの人は邪魔なので後述のC#相談室に移動して下さい。
C#に関係の無い話題や荒らしの相手や罵倒レスや酔っぱらいレスはやめてください
>>980を踏んだ人は新スレを建てて下さい。>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。

■前スレ
ふらっと C#,C♯,C#(初心者用) Part145
https://mevius.5ch.net/test/read.cgi/tech/1570446977/
■関連スレ
C#, C♯, C#相談室 Part95
https://mevius.5ch.net/test/read.cgi/tech/1508168482/
■コードを貼る場合は↓を使いましょう。
http://ideone.com/
https://dotnetfiddle.net/

■情報源
https://docs.microsoft.com/ja-jp/dotnet/standard/class-libraries
https://docs.microsoft.com/ja-jp/dotnet/csharp/language-reference/index
https://docs.microsoft.com/en-us/dotnet/standard/class-libraries
http://referencesource.microsoft.com/
・Insider.NET > .NET TIPS - @IT
https://www.atmarkit.co.jp/ait/subtop/features/dotnet/dotnettips_index.html
・DOBON.NET .NET Tips
https://dobon.net/vb/dotnet/index.html
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
0957デフォルトの名無しさん (アウアウウー Sac3-+wK4)
垢版 |
2020/02/14(金) 19:02:11.32ID:7R4aPKWba
Option Strictは関係ないみたいね。
たぶんenumの型(intかshortかbyteか)で比較するんだろう。
別にそれでもいい気がする。
個人的にはC#の参照型の==演算子は既定で参照を比較する方が気持ち悪いと思うw
実装されてなければコンパイルエラーでよかったのに
0958デフォルトの名無しさん (ワッチョイ efda-GrpO)
垢版 |
2020/02/17(月) 13:08:35.25ID:x0CaePxl0
WinFormsのTreeViewで、CheckBoxの代わりにRadioButtonを使いたいのですが、
それらしい設定を見つけきれません。

どう設定すればよいのでしょうか?
0961デフォルトの名無しさん (ワッチョイ 975f-SbTe)
垢版 |
2020/02/18(火) 22:43:14.29ID:DxyDMMqU0
DBに接続するときに以下のようなContextがあるとしてMyEntities1、MyEntities2、MyEntities3のテーブルにデータが追加されているかをtimerを回してデータCountが変わっているか調べて追加されています。

これをデータが追加されたときのみでよいのですが、削除、変更等があったときにイベントを発生されることってできますか?

public partial class MyContext: DbContext
{
public MyContext(DbConnection connection) : base(connection, false)
{
}

public virtual DbSet<MyEntities1> MyEntities1 { get; set; }
public virtual DbSet<MyEntities2> MyEntities2 { get; set; }
public virtual DbSet<MyEntities3> MyEntities3 { get; set; }
}
0962デフォルトの名無しさん (ワッチョイ 6338-zMV9)
垢版 |
2020/02/18(火) 23:05:48.43ID:9xbWknqa0
DBによってはEVENTを通知する仕組みがある
仕組み以外でもtriggerとかも使える

まあ対象テーブルへの変更がEF経由のみなら、それを一律で監視するのもアリ
MyContext内部とかそのラッパーとかでeventを発火させれば済む
0965デフォルトの名無しさん (ワッチョイ 975f-SbTe)
垢版 |
2020/02/18(火) 23:29:55.78ID:DxyDMMqU0
>>961
情報が足りなかったすみません

対象のDBはSQL Server2000です
これにデータを追加しているアプリと
データが追加されているかを監視したいアプリは別なのですが可能でしょうか?
0966デフォルトの名無しさん (ワッチョイ 975f-SbTe)
垢版 |
2020/02/18(火) 23:35:16.65ID:DxyDMMqU0
後、変えられるのは監視したいアプリ側だけで
DBと 追加しているアプリは変えられないです。
0967デフォルトの名無しさん (ワッチョイ ff02-IdAT)
垢版 |
2020/02/19(水) 00:10:09.35ID:N9gqFXA+0
軽量でない処理を行ってその処理の内容次第で適切な区分値を返すメソッドがあるとすると
メソッド名はどんな感じにするべきですか?

つまりGetHogeKubunのようにGetをつけるのが簡単ですが、
軽量でない処理を呼び出すときはGetをつけないほうがいいという話がありますよね?
私はプロパティ構文のある.NETの場合は、
Getという文言がついているからといって軽量な処理を想定しないと思って
別に適切な命名が思いつかなければ軽量でない処理でもGetを使ってきたのですが、
その考えもどうなんだろうと思ってきました。

みなさんはどうしてますか?
0970デフォルトの名無しさん (オッペケ Sr07-p4c1)
垢版 |
2020/02/19(水) 00:21:14.61ID:2IDaZuEtr
英語の解釈

getは、基本的に置いてある物などを入手する場合に使われます。
努力をしないで物を得る時に使われる事が多いです。口語として一般的に使われています。
0973デフォルトの名無しさん (ワッチョイ ff01-pEhb)
垢版 |
2020/02/19(水) 00:49:18.60ID:GM7mImOk0
>>965
DBへの変更はできない、DBを更新してるアプリの変更はできない、かつSQL Server 2000という条件で
データの追加・更新・削除を検知したいってことでいいのかな?

そういう検知ができるようにテーブル設計されてなければ正攻法では無理
カラム追加するなりストアド使うなりバージョン上げるなりするほうが早いし安上がり
0974デフォルトの名無しさん (ワッチョイ 83de-FTwr)
垢版 |
2020/02/19(水) 01:08:57.84ID:nQPwUMQ20
クラサバ型のアプリなんだけど
サーバー側からイベントが欲しいって言ってんじゃね?

クライアント100台全部に通知ほしい?
また、その電文は投げっぱなしのジャーマンじゃなくて応答が欲しい?
凝ったことするときはレンサバでなければサーバー側にサービスとか動かして実現することが多いかな?
俺の経験だと
0975デフォルトの名無しさん (アウアウウー Sae7-icJa)
垢版 |
2020/02/19(水) 01:12:39.27ID:9hl10qC/a
>>967
>軽量でない処理を呼び出すときはGetをつけないほうがいいという話
これは聞いたことないね

MSのガイドラインではプロパティのゲッターに重い処理を書いてはいけないとなってたと思うけど、
(つまりGetXXX形式にしろ)それを聞き間違えたんじゃないか。

もちろん例外はあると思うけど、メソッド名が十分適切に「何をするメソッドか」を表現できていれば、
普通はそれが重いかどうかだいたい想像がつくのでは?

まあ、非同期メソッドにしたら軽くないことは嫌でも伝わるね
0979デフォルトの名無しさん (ワッチョイ 6388-qdXs)
垢版 |
2020/02/19(水) 15:06:48.11ID:uQe4y4Pa0
基本なのにいつまで経っても議論が絶えないめんどくさい話
IDEのリファクタリング機能が優秀になったおかげで修正が楽だから結構適当につけて後から気に入らなかったら直すスタイルになった
命名で悩む時間が減ったら作業効率あがる
0980デフォルトの名無しさん (ワイーワ2 FFdf-IPX/)
垢版 |
2020/02/19(水) 15:39:25.68ID:cGULNOoWF
string[] a = new string[]{"a","b","c"};
に対して
System.Array.Reverse(a);
でaそのものが反転してSystem.Array.Reverse(a)は戻り値がありませんが
a.Reversed() で戻り値が反転した Array で元の中身は変えない
みたいになるメソッドってありますか?
0982デフォルトの名無しさん (ワイーワ2 FFdf-IPX/)
垢版 |
2020/02/19(水) 16:29:59.82ID:cGULNOoWF
引数 0 を指定するメソッド 'Reverse' のオーバーロードはありません。

って出るんだけど何が変なのかな
0984デフォルトの名無しさん (ワイーワ2 FFdf-IPX/)
垢版 |
2020/02/19(水) 16:53:50.20ID:edMDbkMkF
ありがとう
お詫びに脱ぎます
0985デフォルトの名無しさん (ワイーワ2 FFdf-IPX/)
垢版 |
2020/02/19(水) 17:01:40.22ID:edMDbkMkF
980踏んだのでついでに御相談なのですが

ふらっと C#,C♯,C#(初心者用) Part146
https://mevius.5ch.net/test/read.cgi/tech/1576069931/
ここの次スレ (Part147 ?) は立てた方が良いのでしょうか?
既に
ふらっと C#,C♯,C#(初心者用) Part141
https://mevius.5ch.net/test/read.cgi/tech/1544838367/
というスレもあるようですが重複なので放置なのか使い切った方が良いのかどっち?
0988デフォルトの名無しさん (ワッチョイ 8f02-Uarg)
垢版 |
2020/02/19(水) 19:31:48.47ID:/KKpt7jl0
>>978
命名規則なんてチーム開発での決め事でしかないんだから周り合わせりゃいいだけ
一人で作ってんなら好きにすりゃいい
そんなもんだろ

っで時間がかかる時にGetを付けるかどうかとか決め事にするほどでもない内容だわ
データ書き換えしてるとかならわかるけど
0989デフォルトの名無しさん (ワッチョイ 035f-Hhsf)
垢版 |
2020/02/19(水) 19:46:09.06ID:fm92UHAO0
>>962>>964
timerを回して下のようにデータ件数を取得して比較する
増えていたら必要な処理をおこなうぐらいしか思いつかないんですが
MyContext内の監視の仕方を教えてくれませんか

using (var context = new MyContext(connection))
{
datacount1 = context.MyEntities1.Count;
datacount2 = context.MyEntities2.Count;
datacount3 = context.MyEntities3.Count;
}
//比較処理
Proc(datacount1 ,datacount2 ,datacount3)


>>973>>974
既製品が既製品のDBにInsartだけしていて情報を表示する既製品のアプリもあるのですが
DBにアクセスはできるので情報を表示する既製品のアプリを別に作りたいなと思っています

>>そういう検知ができるようにテーブル設計されてなければ正攻法では無理
これはどんな感じに設定されているのでしょうか?インデックスの最大値を検知とか?
0991デフォルトの名無しさん (ワッチョイ 7338-T5WG)
垢版 |
2020/02/19(水) 20:21:28.78ID:BEiBw7Bx0
それが正攻法やなあ
更新時に通知するのが一番良いけど、そこは触れなそうだし、フックポイントを用意してる気の利いた作りでも無さそうだし

何が問題で、精度や頻度やデータ件数すらわからんので、禄なアドバイスできんが
C#要素薄いし
0995デフォルトの名無しさん (ワッチョイ 035f-Hhsf)
垢版 |
2020/02/19(水) 21:47:53.23ID:fm92UHAO0
基本的にDML トリガー等でDB側に用意しておくものだってことか・・・

>>991
既製品のDBアプリはいじれないので
必要なtableのデータをsqlserver2010からsqlserver2019データを移動させるつもりなのですが
ほとんどのtableは1分に一回ぐらいチェックして別のDB入れるで十分だけど一部のtableはInsertされたらすぐに別のDBに入れたい
そうなると1秒間隔でtimer回して>>989のような処理ってどうなんだ・・・?tableは100ぐらいでレコード件数多いのは100万あるので
timer回さなくてもMyContextが自動でデータ変化をチェックできるようなもっといいやりかたない?って疑問があったので質問してました

>>962
>>まあ対象テーブルへの変更がEF経由のみなら、それを一律で監視するのもアリ
これが気になるんだけど変更を一律で監視ってレコード件数とかなのだろうか


>>994
>>Proc(datacount1 ,datacount2 ,datacount3)
前回のレコード件数と比較して変わってたら2019に移動のつもりで書いていました
0997デフォルトの名無しさん (ワッチョイ ff01-pEhb)
垢版 |
2020/02/19(水) 22:25:12.19ID:GM7mImOk0
>>995
なんでDBContextの話をしてたのかやっと理解できた
DBContextがデータベース側の変更を自動で検知するとかは無理
楽観的同時実行制御みたいな機能はあるけど求めてるものとは違う

DB移行で新旧オンラインのまま
一部テーブルを同期させたいというユースケースなら
トリガーよりも先にレプリを考えるな

詳しくはDB板で聞けば
0999デフォルトの名無しさん (ワッチョイ 035f-Hhsf)
垢版 |
2020/02/19(水) 22:39:28.51ID:fm92UHAO0
>>996
やっぱりそうなっちゃうかな

>>997
変更を自動で検知は無理か
レプリケーション調べてみます

ありがとう!
1000デフォルトの名無しさん (ワッチョイ ff6a-Nz9x)
垢版 |
2020/02/20(木) 00:18:43.15ID:C2E41YSR0
1000ならC#死亡
10011001
垢版 |
Over 1000Thread
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 70日 2時間 6分 32秒
10021002
垢版 |
Over 1000Thread
5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。


───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────

会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。

▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/

▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php
レス数が1000を超えています。これ以上書き込みはできません。

ニューススポーツなんでも実況