1 名前:デフォルトの名無しさん mailto:sage [2019/05/16(木) 19:28:06.27 ID:s+6oZKe00.net] !extend:checked:vvvvv:1000:512 次スレを立てる時は↑を2行冒頭に書くこと(1行分は消えて表示されない為) 「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。 他のスレッドでは書き込めないような低レベルな質問、 質問者自身なんだか意味がよく分からない質問、 ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。 内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。 なお、テンプレが読めない回答者、議論をしたいだけの人は邪魔なので後述のC#相談室に移動して下さい。 C#に関係の無い話題や荒らしの相手や罵倒レスはやめてください >>980 を踏んだ人は新スレを建てて下さい。 >>980 が無理な場合、話し合って新スレを建てる人を決めて下さい。 ■関連スレ C#, C♯, C#相談室 Part93 mevius.5ch.net/test/read.cgi/tech/1492818720/ ■コードを貼る場合は↓を使いましょう。 ideone.com/ https://dotnetfiddle.net/ ■前スレ ふらっと C#,C♯,C#(初心者用) Part142 https://mevius.5ch.net/test/read.cgi/tech/1551908141/ ■情報源 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 referencesource.microsoft.com/ - VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured
48 名前:デフォルトの名無しさん mailto:sage [2019/05/19(日) 19:19:08.50 ID:rIeXrTmo0.net] >>37 出力が何を示すのか知らんけどコメントのためのクラスもあるから適切に処理すればコメントも扱えるよ https://docs.microsoft.com/ja-jp/dotnet/api/system.xml.xmlcomment?view=netframework-4.8
49 名前:デフォルトの名無しさん mailto:sage [2019/05/20(月) 01:15:28.17 ID:ee7ewuKV0.net] データの一時保存のためにXMLエディタみたいな機能積むのは嫌だ。 自己データの保存用のXMLなんだから不必要なタグや属性は無視したいよ。 ただ、どんな保存形式であれ不正データの発生は防ぎきれないから質問主の方針には賛成する。 不正データな時点で内容が信用できないと判断してオール初期化するのも悪手ではない。
50 名前:デフォルトの名無しさん mailto:sage [2019/05/20(月) 01:26:07.42 ID:K7mtfUzra.net] 質問内容は不正データを排除する方法じゃなくて、 手動で編集されて(あるいは別の理由で)「壊れた」データからでも読める部分だけでも読めないかって話だから
51 名前:デフォルトの名無しさん mailto:sage [2019/05/20(月) 03:34:53.02 ID:ittsRsgU0.net] 手っ取り早いのはシリアライズするenum型のプロパティをstring型に変更して想定値以外に編集されてもExeceptionが発生しないようにすることでしょうな
52 名前:デフォルトの名無しさん mailto:sage [2019/05/20(月) 07:13:37.85 ID:h4Os3XI/M.net] 不正データを排除って言っても > 特に enum は綴り間違うとすべてがパーになるので。 ぐらいだけなら>>50 とかの対処療法でなんとかなるけどタグ名の間違いとか文字列のダブルクォーテーションの抜けとかまで言い出したらパーサーを作り直すに近いことになるからそんな所で苦労するなら>>33 の言うようにツールなりを提供した方が楽
53 名前:デフォルトの名無しさん mailto:sage [2019/05/20(月) 08:04:55.23 ID:WRHDTme5a.net] 属性を持たせたいならxml一択
54 名前:デフォルトの名無しさん mailto:sage [2019/05/20(月) 08:07:45.04 ID:MXQiPVhxM.net] そもそもxmlを編集する有名なツール自体がない あってもとても一般人には触れない代物 人に編集させたいくせにあえてこのフォーマットにする意味がそもそも皆無 エクセルでも読めないし 一体どうして欲しいのか? 別の設定ツールを作るときにプログラムから読み書きがしやすいってただそれだけだろ んでツールの提供も嫌だって言うんじゃ メリット皆無 そもそもxmlを選択した時点で担当者は無能で死刑
55 名前:デフォルトの名無しさん mailto:sage [2019/05/20(月) 09:18:28.49 ID:1dspVVtJd.net] えくせるwww
56 名前:デフォルトの名無しさん [2019/05/20(月) 11:20:58.13 ID:g1Dx2x5o0.net] xml は糞
57 名前:デフォルトの名無しさん mailto:sage [2019/05/20(月) 15:53:54.65 ID:IYtfHjiI0.net] 以下のように非async関数proc1から、awaitが必要な関数proc3を呼び出すのに async void の関数proc2を挟んでいます。 この時、proc3/proc2のすべての処理が終わってからproc1に返ってきてほしいのですが、ログを確認すると Enter proc2⇒Enter proc3⇒proc3 start⇒Exit proc2⇒proc3 end⇒Exit proc3 となってしまいます。 Enter proc2⇒Enter proc3⇒proc3 start⇒proc3 end⇒Exit proc3⇒Exit proc2 という順序で実行させるにはどうすれば良いのでしょうか。 private void proc1() { Debug.Write("Enter proc2"); proc2(); Debug.Write("Exit proc2"); } private async void proc2() { Debug.Write("Enter proc3"); if(await proc3()) { foo(); } Debug.Write("Exit proc3"); } private async Task<bool> proc3() { Debug.Write("proc3 start"); await bar(); Debug.Write("proc3 end"); return true; }
58 名前:デフォルトの名無しさん mailto:sage [2019/05/20(月) 16:29:27.47 ID:UpaSmFYv0.net] >>56 proc1でproc2をawait
59 名前:デフォルトの名無しさん mailto:sage [2019/05/20(月) 16:48:17.44 ID:IYtfHjiI0.net] >>57 proc1は同期メソッドなので、await proc2(); はできません。
60 名前:デフォルトの名無しさん mailto:sage [2019/05/20(月) 17:25:01.51 ID:UpaSmFYv0.net] >>58 なら、proc2.Wait()
61 名前:デフォルトの名無しさん mailto:sage [2019/05/20(月) 17:25:01.60 ID:wrDP3R9n0.net] async Task proc2() にして proc2().GetAwaiter().GetResult(); とか
62 名前:デフォルトの名無しさん mailto:sage [2019/05/20(月) 17:58:04.54 ID:IYtfHjiI0.net] >>59 そんなやり方があったんですね。 ただ、async void proc2() だとエラーになったので async Task proc2() に変更して希望の動作になりました。 ありがとうございます。
63 名前:デフォルトの名無しさん mailto:sage [2019/05/20(月) 18:13:28.96 ID:yAZ6lWg7a.net] イベントハンドラーなど戻り値をvoidにするしかない場所でだけ、async voidを使うべき それ以外はasync Taskかasync Task<T>を使おう neue.cc/2013/10/10_429.html
64 名前:デフォルトの名無しさん mailto:sage [2019/05/20(月) 19:47:30.75 ID:NntmuTz60.net] >>62 そんなのは設計や仕様、ポリシー次第。 なんでもかんでも型にはめるな
65 名前:デフォルトの名無しさん mailto:sage [2019/05/20(月) 19:53:39.19 ID:Ea6E7La1r.net] 初心者スレだから自己判断しろというのは難しいかもしれんが、 有用なノウハウや定石ってのはあるんだよ
66 名前:デフォルトの名無しさん mailto:sage [2019/05/20(月) 19:57:11.89 ID:yAZ6lWg7a.net] >>63 イベントハンドラー以外に戻り値voidが必須な場面があるなら 具体例を挙げていってもらったほうがためになるんだが
67 名前:デフォルトの名無しさん mailto:sage [2019/05/20(月) 20:06:27.69 ID:hMek9ucfM.net] 上級者様は自殺するか死ね
68 名前:デフォルトの名無しさん mailto:sage [2019/05/20(月) 20:14:59.41 ID:NntmuTz60.net] >>65 非同期タスクを管理する処理が別にあるとか、 サーバ間でデータ同期するけどリアルタイム性は求めず、整合性チェックも後でやるとか 俺はいろんなとこで経験したぞ。 時間のかかる処理はとにかく後回しでfire&forgetして、 目の前の処理を最優先にしたいことだってある。 「必須」とは言ってない。 状況「次第」と言っている。 実績のあるサイトがそう言ってるからと思考停止するのはやめてくれ
69 名前:デフォルトの名無しさん mailto:sage [2019/05/20(月) 20:27:56.33 ID:bliI8bxJ0.net] jpgを読み込んだbyte配列をUTF8で文字列化し、それをbyte配列に戻すと正しく復元できません System.Text.Encoding.GetBytes(System.Text.Encoding.UTF8.GetString(bytes)); 何故でしょうか
70 名前:デフォルトの名無しさん mailto:sage [2019/05/20(月) 20:33:41.61 ID:nUCZI9rN0.net] >>68 C#以前の問題 UTF-8を使ってすべてのバイナリを文字列に対応させて変換することはできない
71 名前:デフォルトの名無しさん mailto:sage [2019/05/20(月) 20:43:52.08 ID:yAZ6lWg7a.net] >>67 状況次第でasync voidを使う場合があるんだな、知らなかったありがとう >>68 https://docs.microsoft.com/en-us/dotnet/standard/base-types/character-encoding#choosing-a-fallback-strategy https://docs.microsoft.com/en-us/dotnet/api/system.text.utf8encoding#remarks Encodingインスタンスには、文字列化出来ない場合にどうするのかを扱うDecoderFallbackプロパティがあって Encoding.UTF8の場合はReplacement fallbackを使ってREPLACEMENT CHARACTER (U+FFFD)に変換する だからGetString()時点でjpg中のutf-8でない部分はU+FFFDに変わるのでGetBytes()しても復元できない
72 名前:デフォルトの名無しさん mailto:sage [2019/05/20(月) 20:48:37.77 ID:xhf1KGbK0.net] >>70 最近Blazorのソース内でもasync voidを使うべきかって話をSteven先生らがしてたね PRとそのディスカッション追っかけてみるとおもしろいよ
73 名前:デフォルトの名無しさん [2019/05/20(月) 21:09:30.64 ID:bliI8bxJ0.net] >>69 >>70 Replacement Character に変換された時点で不可逆になるってことか 助かった。ありがとう
74 名前:デフォルトの名無しさん [2019/05/20(月) 21:15:12.88 ID:UR9kN7had.net] どうしても文字列にしたいならbase64
75 名前:sdfasdfasdfsd [2019/05/20(月) 21:22:49.73 ID:VWEIYE4F0.net] Visual Studio(C#)のプログラミングに関する質問です。 インクルードする2ファイルが、双方のクラスを互いに必要とするケースにおいて、 コンパイルが通らなくて困っています。(当たり前なのですが…) 【Aファイル】 クラスAの定義{ クラスBの使用(インスタンス作成、メソッド利用) } 【Bファイル】 クラスBの定義{ クラスAの使用(インスタンス作成、メソッド利用) } 【全体インクルードファイル】 #include Aファイル #include Bファイル 【コンパイル結果】 Bクラスが存在しません(Aファイルにて) 【質問】 お互いにクラス定義を必要とする場合、 ★具体的に★どのような実装をすれば良いのでしょうか?
76 名前:デフォルトの名無しさん mailto:sage [2019/05/20(月) 21:29:41.06 ID:Bu5yaqN9a.net] C#でインクルード? VisualStudio/C#のバージョンはなに?
77 名前:デフォルトの名無しさん mailto:sage [2019/05/20(月) 21:34:07.81 ID:CFJtADgh0.net] >>74 とりあえず言っておくと#includeはc#じゃない 一般論で言えばAとBの機能が両方必要な部分でCを作って処理するべきだな
78 名前:デフォルトの名無しさん mailto:sage [2019/05/20(月) 21:38:58.17 ID:zvO9BMGmp.net] C++ならImplパターン的なのになりそう
79 名前:デフォルトの名無しさん [2019/05/20(月) 22:15:36.37 ID:4rJ56KmUa.net] >>74 どういう場合にそんな設計しないといけないのかが気になる
80 名前:デフォルトの名無しさん [2019/05/20(月) 22:38:26.25 ID:VWEIYE4F0.net] >>75 本当はC++ cliですけど、C#の方がみなさんに馴染みがあると思うので 言語差異は私が吸収するのでC#として教えてください
81 名前:デフォルトの名無しさん [2019/05/20(月) 22:39:43.45 ID:VWEIYE4F0.net] >>76 一般論で言えばAとBの機能が両方必要な部分でCを作って処理するべきだな → ご教授ありがとうございます。これだと実装がきたなくなります。 未解決です
82 名前:デフォルトの名無しさん [2019/05/20(月) 22:41:01.38 ID:VWEIYE4F0.net] >>77 知識不足で教習ですがImplパターンとはなんでしょうか。 ぐぐっても出てきませんでした、
83 名前:デフォルトの名無しさん mailto:sage [2019/05/20(月) 22:49:57.98 ID:Bu5yaqN9a.net] 条件の後出し、質問文に虚偽か >>80 の回答でもダメなんでしょ 「C#にはincludeがないから言語仕様として>>74 のようなクラスの書き方をしてもコンパイルエラーにならない」 という回答にしかならないから、貴方の知識と頑張りでC++CLIに読み替えてくれ
84 名前:デフォルトの名無しさん mailto:sage [2019/05/20(月) 22:53:46.69 ID:RwQcJLUy0.net] 実装が汚いって>>74 の時点で汚物まみれやんけwww
85 名前:デフォルトの名無しさん mailto:sage [2019/05/20(月) 22:56:25.44 ID:5mAsU23+0.net] 私は貴方のお母さんではありません
86 名前:デフォルトの名無しさん mailto:sage [2019/05/20(月) 23:04:19.27 ID:XzV4NN/g0.net] 頭の中もさぞかしゲロまみれであろう
87 名前:デフォルトの名無しさん mailto:sage [2019/05/20(月) 23:05:45.37 ID:Cm4lSS/q0.net] マルチポストで上から目線ってすげーな 全体インクルードファイルとかいうもん作るのになんで実装が汚いなんて拘るのかも意味不明 君の思う綺麗な実装なんてなんで他の誰かが気にしなきゃいけないのw
88 名前:デフォルトの名無しさん mailto:sage [2019/05/20(月) 23:11:16.82 ID:0XbNrzL70.net] どっちの画面からも お互いの画面を呼び出す仕様を素直に作っちゃうとそうなるな 今は無意識にそういうの避けてるだけで あるはあると思う 辻褄が合うように頑張るしかない
89 名前:デフォルトの名無しさん mailto:sage [2019/05/21(火) 00:21:42.93 ID:7ZZvuA7z0.net] インターフェース使えばできると思うが、オススメはしないな
90 名前:デフォルトの名無しさん mailto:sage [2019/05/21(火) 01:09:08.10 ID:M9GsAJ+k0.net] C++の方にはすぐ回答出てたけど前方参照するだけの話 トリッキーでも何でもなくちょっとした規模の開発なら余裕で出てくる基礎的な内容 C++ 相互 参照 あたりでググればいくらでも記事は出てくる そんな基礎的な内容を知らないのになぜか上から目線
91 名前:デフォルトの名無しさん mailto:sage [2019/05/21(火) 01:39:01.98 ID:CAN2Js5F0.net] >>89 それで回避していいならc#も同じじゃねっけ?
92 名前:デフォルトの名無しさん mailto:sage [2019/05/21(火) 01:40:43.20 ID:CAN2Js5F0.net] ただ、一部の人間からはウンコ認定されるってだけ
93 名前:デフォルトの名無しさん mailto:sage [2019/05/21(火) 06:42:05.09 ID:tdstqwiHM.net] そういう経験ない人からの認定なんてどうでもよくね?
94 名前:デフォルトの名無しさん mailto:sage [2019/05/21(火) 07:08:14.10 ID:meTEBfC3M.net] 組み方によって回避できるよ多分
95 名前:デフォルトの名無しさん mailto:sage [2019/05/22(水) 00:05:54.67 ID:uN3Dm6wF0.net] 普通にC#のプロジェクトならそのAクラスもBクラスもコンパイルエラーにはならんのじゃねえの? 言語差異を吸収するってなら、全体インクルードファイルってのをC#に置き換えてから質問しろよ
96 名前:デフォルトの名無しさん mailto:sage [2019/05/22(水) 01:20:47.85 ID:rbGbzH6ha.net] 率直に思ったこと。 少なくとも俺には件の質問者が上から目線で物を言っているようには聞こえない むしろ質問に正面から答えずに言い掛かりをつけてる連中の方がよほど上から目線で頭がオカシイ
97 名前:デフォルトの名無しさん mailto:sage [2019/05/22(水) 02:15:27.63 ID:HqRLK9QX0.net] そうか、そういうのはママにお話してあげてな生ゴミくん
98 名前:デフォルトの名無しさん mailto:sage [2019/05/22(水) 03:42:23.27 ID:sEhyUb960.net] >>95 俺もそう思う
99 名前:デフォルトの名無しさん mailto:sage [2019/05/22(水) 06:16:41.31 ID:t1pLQv560.net] >>95 >>79 辺りは人によっては上から目線と取る人がいるかもな あと>>86 が書いてるようにマルチポストだしそもそも言語(C++/CLI)を後出しするとか質問のしかたも色々おかしいとは思う
100 名前:デフォルトの名無しさん mailto:sage [2019/05/22(水) 08:35:59.17 ID:PRmXlAdaa.net] 上から目線で、というのは>>96 みたいなのを指すんだろ
101 名前:デフォルトの名無しさん mailto:sage [2019/05/22(水) 09:45:56.54 ID:4WKngIFH0.net] レスが真矢みきの声で再生されるから、 痛いとも思わん。 むしろご褒美
102 名前:デフォルトの名無しさん mailto:sage [2019/05/25(土) 01:29:08.07 ID:6oktqQ9W0.net] お前らいっつも喧嘩してんな
103 名前:デフォルトの名無しさん mailto:sage [2019/05/25(土) 01:49:47.06 ID:b/i4jST30.net] 私のために喧嘩するのはやめて!
104 名前:デフォルトの名無しさん [2019/05/26(日) 18:26:18.96 ID:NZfOTj1K0.net] xmlファイルをdll化することってメリットありますか? 何故かxmlのdllが出来てたのですが、理由はなんでしょうか?
105 名前:デフォルトの名無しさん mailto:sage [2019/05/26(日) 19:00:10.18 ID:68ZlmbT30.net] >>103 フォーマット違うんだけどな。dllに埋め込まれたxmlリソースが見えただけじゃないの? もしくはxmlファイルを間違ってdllにリネームしてしまったか 「何故か」の過程が分からないと難しいしC#に関係あるかすらわからない
106 名前:デフォルトの名無しさん mailto:sage [2019/05/26(日) 19:03:01.37 ID:kiCcEgc2M.net] ユーザー定義リソースなら何でも書けるよ
107 名前:デフォルトの名無しさん mailto:sage [2019/05/26(日) 19:14:38.59 ID:gL51xVlRd.net] 日本語でよろしく
108 名前:デフォルトの名無しさん mailto:sage [2019/05/26(日) 20:51:40.86 ID:KIe0CODm0.net] visual studioではcsファイル単体でのテストは可能ですか? デバッグしたいです wpfです
109 名前:デフォルトの名無しさん mailto:sage [2019/05/26(日) 20:58:26.81 ID:68ZlmbT30.net] >>107 プロジェクトが無いとデバッグできないしWPFはcsファイル単体では成り立たないんじゃないの https://docs.microsoft.com/ja-jp/dotnet/framework/wpf/getting-started/walkthrough-my-first-wpf-desktop-application これ以上はWPFスレで聞いてください WPF(.NET4.x, .NET Core) GUIプログラミング Part23 https://mevius.5ch.net/test/read.cgi/tech/1557960752/
110 名前:デフォルトの名無しさん mailto:sage [2019/05/26(日) 21:02:25.57 ID:KIe0CODm0.net] すみません じゃあvs code使いますです
111 名前:デフォルトの名無しさん mailto:sage [2019/05/27(月) 15:50:03.21 ID:akjP+mMa0.net] githubで他人のコードを見て勉強しているのですが、 Action OnInit { get;set;} というプロパティに対して OnInit?.Invoke(); というコードは何をしているのでしょうか?
112 名前:デフォルトの名無しさん mailto:sage [2019/05/27(月) 16:02:02.29 ID:gRTKnRKQ0.net] if ( OnInit != null ) { OnInit(); }
113 名前:デフォルトの名無しさん mailto:sage [2019/05/27(月) 16:48:18.03 ID:akjP+mMa0.net] >>111 ありがとうございます、C#6からの機能なんですね、新しい書き方についていかなければ。
114 名前:デフォルトの名無しさん [2019/05/27(月) 19:42:02.15 ID:at7F4ASBM.net] >>112 単純に短く書けるってだけじゃ無いからな。 >>111 だとマルチスレッド時に1つ目の{でスレッドが切り替わって OnInitにnullがセットされてしまう可能性があるが Invokeにはそれが無い
115 名前:デフォルトの名無しさん [2019/05/27(月) 19:54:29.22 ID:jyj66Likr.net] >>113 Invokeにじゃなくて?. の仕様な
116 名前:デフォルトの名無しさん mailto:sage [2019/05/27(月) 19:54:39.07 ID:lwWgLhFv0.net] Ruby にも、&. という、null(nil)許容演算子が出来た Swift から来た、流行か
117 名前:デフォルトの名無しさん mailto:sage [2019/05/27(月) 20:35:27.77 ID:5pJw+KKe0.net] 今、一からデータベースプログラミングの勉強するなら、 @型付きDataSet A型なしDataSet BEF のどれがよいでしょうか?
118 名前:デフォルトの名無しさん mailto:sage [2019/05/27(月) 20:40:41.26 ID:uloK3O7ha.net] DataSetなんて15年以上前の技術なんか今更触っちゃダメ Web上の情報でもDataSetを扱ってるようなページは問答無用で無視してよい EFと言いたいところなんだけど・・・・個人的にはSQLの勉強も兼ねてDapperを推したい データベースの基礎共用として手書きSQLがひととおり書けるようになっておいたほうがいい
119 名前:デフォルトの名無しさん mailto:sage [2019/05/27(月) 20:48:22.48 ID:LNS8v7+tM.net] >>116 上の人も言ってるが、CSQL DBを自在に操れるようになるまでC#はしばらく封印しなさい
120 名前:116 mailto:sage [2019/05/27(月) 22:32:39.99 ID:5pJw+KKe0.net] >>117-118 ありがとうございます。 DataSetとDapperをちょっとだけ試してみました。 DataSetはGUIで簡単にクエリを生成して実行もしてくれますが、DapperはSQLをソースコード内に直に書いて、Connectionも作る必要がありました。 こういうものでしょうか?それともDapperのGUIのSQLビルダー機能を見落としているのでしょうか?
121 名前:デフォルトの名無しさん mailto:sage [2019/05/27(月) 22:55:14.89 ID:N+biQgtua.net] SQL書けない奴はプログラマを名乗るな
122 名前:デフォルトの名無しさん mailto:sage [2019/05/27(月) 23:02:35.44 ID:dknccbkiM.net] >>120 ニヤニヤ
123 名前:デフォルトの名無しさん mailto:sage [2019/05/27(月) 23:26:39.44 ID:bCVUGNm+a.net] >>119 そういうものだよ GUIでコーディングをラップしたようなツールは決まって生産性が低い
124 名前:デフォルトの名無しさん mailto:sage [2019/05/27(月) 23:42:07.71 ID:uloK3O7ha.net] >>119 DapperでSQLを書かずに済ませたい場合は、Dapper用クエリビルダを別途導入 nugetパッケージが多数公開されてるから合いそうなのを選ぶ・・・んだけど、デファクトスタンダードなものがないんだよね 単純なCRUDができれば十分でSQLを手書きせずに済ませたいならDapperよりもEFを使うほうが良いと思う >>116 さんならカンもよさそうだしとりあえずEFでCodeFirst⇒CRUDひととおりできればさほど困らないかも ただそれでもSQLは別途学習したほうがいい 集計とかパフォーマンスを考慮したデータ検索とかをやろうとするとどうしても自前でSQLを書く必要が出てくる
125 名前:116 mailto:sage [2019/05/28(火) 00:13:06.87 ID:n5bJXWyL0.net] とりあえずdapperでPostgresqlからデータを取得して、Entityクラスのインスタンスを作って、DataGridViewのDataSourceに指定したのですが、 asでカラムの別名を指定しても、プロパティ名もその別名にしないと、指定した別名になってくれないですね。 //Entityクラスのプロパティ名を、"名前","有効","備考"にしないと機能しない。 var sql = "select pkey, name as 名前, enabled as 有効, memo as 備考 from m_tbl_department;"; var result = con.Query<Entity.Department>(sql).ToList<Entity.Department>(); view.DataSource = result; 回避策がすぐに思いつかないので、EFも触ってみたいと思います。
126 名前:デフォルトの名無しさん mailto:sage [2019/05/28(火) 08:55:21.94 ID:WAihcsXB0.net] 列ヘッダの表示なら、クエリでasでやるんじゃなくて class Department { [DisplayName("名前")] public string name { get; set; }
127 名前:デフォルトの名無しさん mailto:sage [2019/05/28(火) 09:38:11.91 ID:tpS8MDSU0.net] C# のフレームワークには、Ruby on Rails みたいな、O/R マッパーが無いのか? 今時、文字列で、SQL を書く人なんて、いるのか? SQL インジェクションもされるから、今は、O/R マッパーのメソッドを使う。 placement に値を入れるだけで、SQLインジェクションをエラーにできる
128 名前:デフォルトの名無しさん mailto:sage [2019/05/28(火) 10:09:05.63 ID:OLBGotQQ0.net] >>126 EFを知らないのか それと上で出ているDapperもその一種だ
129 名前:デフォルトの名無しさん mailto:sage [2019/05/28(火) 10:29:03.95 ID:nGxfAzB2a.net] >>126 お前はRubyスレから出てくるな
130 名前:デフォルトの名無しさん mailto:sage [2019/05/28(火) 10:35:26.92 ID:FiHQa1DK0.net] A言語のスレで「A言語にはB言語でいうCみたいな機能は無いのか?」って聞いても、B言語を知らない、詳しくない人には「Cみたいな機能」がどんな機能かわからん。 B言語のスレなら少なくとも「Cみたいな機能」がどういう機能かはわかるんだから、聞くならB言語のスレで聞けばいいんじゃね? 今回ならRubuのスレでね。
131 名前:デフォルトの名無しさん mailto:sage [2019/05/28(火) 10:35:51.99 ID:FiHQa1DK0.net] あ・・ Typo・・・
132 名前:デフォルトの名無しさん mailto:sage [2019/05/28(火) 10:43:26.90 ID:4asTXY3/d.net] >>129 そのレベルの問題じゃない
133 名前:デフォルトの名無しさん mailto:sage [2019/05/28(火) 11:33:20.74 ID:MzojxIZTM.net] >>126 それRubyスレで言ってみ? 意識高い系Rubyist(笑)達からも嵐のようにマサカリ飛んでくるよw
134 名前:デフォルトの名無しさん mailto:sage [2019/05/28(火) 11:57:04.06 ID:4xq1FFDVM.net] >>126 ストアド叩けばええんちゃう?
135 名前:デフォルトの名無しさん mailto:sage [2019/05/29(水) 11:04:17.50 ID:8l8j4cjm0.net] 昔は、C#での帳票にはクリスタルレポートを使っていました。 最近は、C#(Windowsアプリ)で一番多く使われているのは何でしょうか? 一番多く使われているものを教えてください。
136 名前:デフォルトの名無しさん mailto:sage [2019/05/29(水) 12:37:48.69 ID:GnXFyo5ZM.net] >>134 多分、データを帳票の枠の入ったExcelファイルに書き込んで表示or印刷的なのが多いかと っていうかクリレポってそんなに多かったですかね? 昔から私の周りではこっちのが主流でしたw
137 名前:デフォルトの名無しさん mailto:sage [2019/05/29(水) 12:49:27.29 ID:2L2FZYjAM.net] >>134 JasperReports
138 名前:デフォルトの名無しさん mailto:sage [2019/05/29(水) 16:20:00.76 ID:SMQO8msKF.net] >>134 グレープシティのなんか。
139 名前:デフォルトの名無しさん mailto:sage [2019/05/29(水) 18:07:30.21 ID:xcggW8D+a.net] よく知らんけど帳票って専用のライブラリ使わなきゃいけないほど複雑な分野なのかな。 よっぽど凝ったデザインとかじゃなきゃ自分でゴリゴリ書いても たいした手間じゃないと思うんだけど WPFのDocumentは触ったことないけどGDI+なんか全然簡単よ
140 名前:デフォルトの名無しさん mailto:sage [2019/05/29(水) 18:09:50.31 ID:mJlxjjN/0.net] 情シスで未経験ながら一人
141 名前:開発してるんですけどSQLをクラスに書きながら世間様ではどうしているのか気になりました クエリ専用クラスとか作ってるのでしょうか? 神クラスにまとめているのでしょうか? ドメイン駆動設計独学してる限りではSQLは対象の知識に閉じ込めておくべきかなと考えておりますが、ベテラン様のご意見を伺いたいです [] [ここ壊れてます]
142 名前:デフォルトの名無しさん [2019/05/29(水) 18:27:22.97 ID:xRp200EqM.net] WPFなら帳票もxamlで作る 外部ライブラリは要らない MVVMでちゃんと分離出来てれば、チャチャっとデザイン屋に頼めば良い。 FixedDocument作ってプリンタに送る部分だけちょっとめんどいかな
143 名前:デフォルトの名無しさん mailto:sage [2019/05/29(水) 20:30:50.69 ID:RpTtWZkWd.net] Open Xml SDK使ってxlsxファイルに流し込んでる
144 名前:デフォルトの名無しさん mailto:sage [2019/05/29(水) 20:47:27.03 ID:8l8j4cjm0.net] >>135 >.136 >>137 >>138 昔はクリスタルレポートを使ってWindowsアプリでは、帳票出力していました。 確かにExcelで印刷時のテンプレートのデザインをざっくり作っておいて C#から特定のセルに値を転記して、印刷した方が早いと思います。 ただ、このやり方ってどうなんだろうな〜と思いまして。動けばいいんですけど。 はまった時に解決するのが大変なので できるだけ世間一般で多く採用されている手法を取りたいと考えています。
145 名前:デフォルトの名無しさん mailto:sage [2019/05/29(水) 22:40:18.15 ID:ZESC3voLd.net] iTextSharp使ってPDFのテンプレートに流し込むのというのも作ったことある
146 名前:デフォルトの名無しさん mailto:sage [2019/05/29(水) 23:07:18.43 ID:3nSVS9eo0.net] 今はライセンス料必要だけどね
147 名前:デフォルトの名無しさん mailto:sage [2019/05/30(木) 12:47:28.06 ID:NTWA4E5yM.net] >>113-114 えっ? そんな余計な機能がついてるんだ… 性能劣化するのはちょっと嫌かも
148 名前:デフォルトの名無しさん mailto:sage [2019/05/30(木) 12:51:13.14 ID:NTWA4E5yM.net] >>138 プリンタによって細い罫線がでないとかに真面目に対処しようとすると結構大変だからその手のライブラリに丸投げする プリンタが固定なら自前で作ってもいいけど