1 名前:デフォルトの名無しさん mailto:sage [2016/07/31(日) 12:02:50.03 ID:845Zva4M.net] 「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。 他のスレッドでは書き込めないような低レベルな質問、 質問者自身なんだか意味がよく分からない質問、 ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。 内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。 なお、テンプレが読めない回答者は邪魔なので後述のC#相談室に移動して下さい。 C#に関係の無い話題や荒らしの相手や罵倒レスはやめてください >>980 を踏んだ人は新スレを建てて下さい。 >>980 が無理な場合、話し合って新スレを建てる人を決めて下さい。 ■前スレ ふらっと C#,C♯,C#(初心者用) Part122 echo.2ch.net/test/read.cgi/tech/1468078489/ ■関連スレ C#, C♯, C#相談室 Part91 echo.2ch.net/test/read.cgi/tech/1467142749/ ■コードを貼る場合は↓を使いましょう。 ideone.com/ https://dotnetfiddle.net/ ■情報源 https://msdn.microsoft.com/en-us/library/gg145045.aspx referencesource.microsoft.com/
116 名前:デフォルトの名無しさん mailto:sage [2016/08/03(水) 15:23:21.26 ID:PbSq5cfW.net] エラー自体ははっきりしてるので、、 ちょっと試しに単純なデータでも出るかやってみてよ
117 名前:デフォルトの名無しさん mailto:sage [2016/08/03(水) 15:23:49.27 ID:uW5WiLiF.net] >>109 成る程、、、理解したw 変更できないってのはもどかしいけど、がんがれ。 ADO.NETの話だから専用スレがあったらソッチの方がいいかも知れんよ。 (スレ誘導ウザイ厨に補足されそうで嫌だけど)
118 名前:デフォルトの名無しさん mailto:sage [2016/08/03(水) 15:25:59.10 ID:m0rhFcyF.net] >>113 データを写真以外でも良いから簡単な例でってことかな ちょっと組み換えてやってみるよ >>114 これってC#の話でなくその話なんか 最近C#始めたばかりでどれがどれでなんてわからんのよね
119 名前:デフォルトの名無しさん mailto:sage [2016/08/03(水) 15:26:09.37 ID:uW5WiLiF.net] ID変えてまで変なこと言ってる。。。 あぼ〜んしますね。
120 名前:デフォルトの名無しさん mailto:sage [2016/08/03(水) 15:28:12.51 ID:uW5WiLiF.net] 1対1 1対N N対1 N対N って感じで広げていく方が原因を追いやすい希ガス。
121 名前:デフォルトの名無しさん [2016/08/03(水) 15:58:47.02 ID:m0rhFcyF.net] 試しに超簡単な例でやってみたら問題なく動いた ただ、四層構造で今DBにデータ格納してるのだけどそれが原因なのかなって思ってきた… using( var db = new DbCntext ) { } 別のとこに存在する上記のコードで変更すると、関連するデータがすべて変わる雰囲気がある
122 名前:デフォルトの名無しさん mailto:sage [2016/08/03(水) 16:24:27.25 ID:pX27JEVl.net] >>111 ちらっと見てみたけど、tmpImage取ってきてすぐAttachしてるのって何か意味あるのかな? (俺が無知なだけならスマンの) Images tmpImage = ( from d in db.ImagesInfo where d.Id == image.Id select d ).First(); db.ImagesInfo.Attach( tmpImage );
123 名前:デフォルトの名無しさん mailto:sage [2016/08/03(水) 16:42:27.07 ID:m0rhFcyF.net] >>119 そこ考えているとこでどういう意味があるのだろうかは効果があってから考えようとしていた アタッチは接続的な意味があると思ってて取ってきたものに接続することで変更を許さなくするものだと勝手に思い込んでる 参考はこれ mslaboratory.blog.eonet.jp/default/2012/05/entity-framewor-2c13.html
124 名前:デフォルトの名無しさん mailto:sage [2016/08/03(水) 16:43:39.18 ID:m0rhFcyF.net] 本当はimageを入れれば良いんじゃないかと思ってるのだけど入れると >>98 のエラーが出てくる どの値が被っているのかが全然わからない…
125 名前:デフォルトの名無しさん mailto:sage [2016/08/03(水) 16:46:50.62 ID:bderv+bK.net] INNER JOINで条件ゆるくて同じPKが複数出てきてるんだろうけど EFの方をよくわからんからなあ、ちょっと勉強しないとな・・・
126 名前:デフォルトの名無しさん mailto:sage [2016/08/03(水) 16:56:52.39 ID:m0rhFcyF.net] >>122 もしかしてなんだけど 写真リストが持つ友人リスト 友人リストが持つ写真リスト 写真リストが持つ友人リスト…ってループするから 1つ目の友人リストと、2つ目の友人リストが被って〜…とかありえるのかな 今回のやつで中間テーブルを使用せずに>>110 が言うようにするならどうすれば良いんだろう 写真リストは写真情報 友人リストは写真情報 同じ写真情報テーブルを持てば良いのかな それとも四つのクラスだろうか>>106 のような
127 名前:デフォルトの名無しさん mailto:sage [2016/08/03(水) 16:58:53.32 ID:E+3fwoaI.net] >>121 Attachが必要なのって、今のcontext以外で作ったインスタンスと、今のcontextに紐付ける場合。 なので、今のcontextから取り出したインスタンスをそのままAttachしても意味無いと思う。
128 名前:デフォルトの名無しさん mailto:sage [2016/08/03(水) 17:01:47.79 ID:m0rhFcyF.net] >>124 別のusing(var db = new .....)の中でのインスタンスと紐付ける場合に必要って認識で良いのかな
129 名前:デフォルトの名無しさん mailto:sage [2016/08/03(水) 17:22:57.85 ID:fyF/wT3P.net] >>123 自分は >>104 に賛成 写真-友人のリンクを保存するテーブルが一つ追加されればいいはず そして、写真、友人それぞれのエンティティに相手のListはいらない リンクを表すエンティティを作って、お互いの関係についてはすべてそこで処理
130 名前:デフォルトの名無しさん mailto:sage [2016/08/03(水) 17:27:13.60 ID:m0rhFcyF.net] >>126 それで今考え直してるところ。その三つ目のテーブルでおそらく 撮影情報テーブル 写真番号 被写体 1 X 1 Y 1 Z 2 X 3 Y 3 Z こんなテーブル作るって意味よね。 この場合このテーブルには写真と友人のリストを持たせる そして写真と友人の相互のリストを消し去る ってのは問題なくできそうなんだけど関係性を繋げるキーってなにか設定いるかな 写真番号と被写体はそれぞれのテーブルの外部キーになるとは思うのだけども
131 名前:デフォルトの名無しさん mailto:sage [2016/08/03(水) 17:36:00.46 ID:fyF/wT3P.net] こうじゃない? PcitureクラスとFriendクラスを結びつけるとして、 class Relation { public int PictureID { get; set; } public int FriendID { get; set; } } class PictureFriendContext : DbContext { public DbSet<Picture> Pictures { get; set; } public DbSet<Friend> Friends { get; set; } public DbSet<Relation> Relations { get; set; } }
132 名前:デフォルトの名無しさん [2016/08/03(水) 17:41:19.97 ID:m0rhFcyF.net] >>128 おおわざわざありがとう ideone.com/DiTuFt 一応俺も書いてみたけど少し違うね…ここはリストで持つ必要や、写真・友人との関連性は必要ないのかな リストだとまた変な感じになるのか… そのPictureIdとかは重複を許すってので合ってるよね
133 名前:デフォルトの名無しさん mailto:sage [2016/08/03(水) 18:48:41.57 ID:atH4tWg3.net] 猫が写ってる!
134 名前:デフォルトの名無しさん mailto:sage [2016/08/03(水) 18:56:54.40 ID:pX27JEVl.net] >>125 >>120 のサンプルも、usingの範囲外で作ったインスタンスAttachしてる。
135 名前:デフォルトの名無しさん mailto:sage [2016/08/03(水) 19:53:26.70 ID:fyF/wT3P.net] >>129 Relation クラスにIDを持たせるの忘れてた…ごめんなさい PictureID、FriendIDはもちろん重複可 サンプルができたので貼っときます ideone.com/5XmKW7 (PictureFriendSampleをnewしたらテスト実行)
136 名前:132 mailto:sage [2016/08/03(水) 20:12:26.73 ID:fyF/wT3P.net] ごめん!!! 最後のクエリが間違ってたのと写真と友人の関連づけ確率が高すぎたのを修正… ideone.com/P50YaZ
137 名前:デフォルトの名無しさん mailto:sage [2016/08/03(水) 22:43:54.41 ID:m0rhFcyF.net] >>133 おお 長々とありがとう こちらもなんか変な問題にぶちあたってたとこで困ったらここに来るようになった 一番始めにデータには紐付けてはしてないのね あとで紐付ける感じなのですな まだ全然わからないコードが多いからまずはべんきょうしてくるわ!!!!!
138 名前:デフォルトの名無しさん mailto:sage [2016/08/03(水) 22:56:47.90 ID:PIsq5bYs.net] asp.net coreの質問てあり?
139 名前:デフォルトの名無しさん mailto:sage [2016/08/03(水) 23:02:35.24 ID:oiDTcOGH.net] >>135 こっちじゃダメなの? 【質問】ASP.NETスレ Part7【雑談】 tamae.2ch.net/test/read.cgi/php/1343282128/
140 名前:デフォルトの名無しさん mailto:sage [2016/08/03(水) 23:33:30.41 ID:wKahhl4a.net] リレーション用のテーブルもエンティティとして自分で管理するのも方法ではあるだろうけど それでは何のためにエンティティでリレーションたどったり自動で中間テーブル作る機能があるのかと エンティティ2個でやる例 ideone.com/JlsB9b とりあえずAttachとか忘れて全部コンテキスト配下でやれ
141 名前:デフォルトの名無しさん mailto:sage [2016/08/03(水) 23:58:03.96 ID:v7zxzFcD.net] >>135 実はこんなスレも…… .Net Core / Net ASP Core echo.2ch.net/test/read.cgi/tech/14672
142 名前:25941/ [] [ここ壊れてます]
143 名前:デフォルトの名無しさん mailto:sage [2016/08/04(木) 01:26:47.69 ID:KJGV+bda.net] >>137 四層構造って言ってるしそれはそれで無理なんじゃね? 四層だから必要なときにdbアクセスでアタッチとか必要になってる気がした 当人と違うしコード読んでないからわかんねぇけどさ
144 名前:デフォルトの名無しさん mailto:sage [2016/08/04(木) 04:32:59.95 ID:oWVthcOw.net] 4層構造とかちょっと理解できん 実テーブル4個ってなら、エンティティの定義と生成されたテーブル定義出してくれって感じ なんか隠れた条件や要件でもあるならしらんが 写真と友人以外にエンティティとして「必要」なものなんてないだろ
145 名前:デフォルトの名無しさん mailto:sage [2016/08/04(木) 08:11:20.34 ID:YuweHQdn.net] 家族(猫)と同僚が追加されました! New!
146 名前:デフォルトの名無しさん [2016/08/04(木) 08:23:38.45 ID:vS9OUDxy.net] 相談室もウンコみたいな話題で盛り上がっててなんだかな
147 名前:デフォルトの名無しさん [2016/08/04(木) 08:43:43.95 ID:0pX6MUjd.net] 昨日の晩から向こうも初心者スレになったので、ヨロシク
148 名前:デフォルトの名無しさん mailto:sage [2016/08/04(木) 13:41:29.45 ID:eUvKuwTN.net] C#で void* から byte[] に変換(キャスト)するにはどう書けばよいですか?
149 名前:デフォルトの名無しさん mailto:sage [2016/08/04(木) 14:30:22.24 ID:Iq5WAESB.net] キャストは無理 コピーならvoid*をIntPtrにキャストしてMarshal.Copyで
150 名前:デフォルトの名無しさん mailto:sage [2016/08/04(木) 15:03:25.68 ID:ZLPe6sdc.net] windowsフォームでメインフォームのlistboxに サブフォームで入力した内容(氏名、生年月日、住所)を 登録したいのですがどう書けばよいですか?
151 名前:デフォルトの名無しさん mailto:sage [2016/08/04(木) 15:09:33.57 ID:dpx64fng.net] >>146 メインフォームにlistboxに書き込むメソッドをinternalかpublicで作ってサブフォームから呼び出すか listboxをinternalかpublicにしてサブフォームから書き込むメソッドを作る
152 名前:デフォルトの名無しさん mailto:sage [2016/08/05(金) 09:40:07.46 ID:u3WIRdgf.net] ずっとwinformばっかやってきたけど、作ったwinformをwpfに変えるのって大変?
153 名前:デフォルトの名無しさん mailto:sage [2016/08/05(金) 09:44:24.42 ID:YTOm0VxE.net] ベタ移植なら字句翻訳レベルだけどそれだとあまりWPFの意味はない WPFらしく作るならビュー周りは全部作り直し っていうか乗り換えるならオワコンWPFなんかより思い切ってWeb行け
154 名前:デフォルトの名無しさん mailto:sage [2016/08/05(金) 10:04:36.90 ID:u3WIRdgf.net] wpfってオワコンなの? web行けの意味がわからないんだけど… windowsアプリもwebアプリも両方作ってるけど、やっぱ別だよ?
155 名前:デフォルトの名無しさん mailto:sage [2016/08/05(金) 10:11:21.22 ID:HSLNFCI0.net] >>146 サブフォームに public Action<int,string> Entry; みたいなものを作って、サブフォーム作成時にコールバックを用意するのが筋かな
156 名前:デフォルトの名無しさん mailto:sage [2016/08/05(金) 10:13:13.02 ID:Lilhp+0b.net] C#でタブレットPC向け(Win8以降)のアプリを作成するとしたら、WPFは必須? 標準の機能にはマルチタッチ用の機能が無いので、扱うとしたらWPFはいるのかな?
157 名前:デフォルトの名無しさん mailto:sage [2016/08/05(金) 10:17:06.58 ID:5YPK7Aag.net] C#でホームページを作りたい場合コードはhtmlとc#が半々を占めるの? それともC#がhtmlの代わりになるから8割程度C#とか?
158 名前:デフォルトの名無しさん mailto:sage [2016/08/05(金) 11:25:20.20 ID:ybsuHohg.net] >>153 最終的には100%HTML+CSS+JS C#はHTML等を生成するだけ
159 名前:デフォルトの名無しさん mailto:sage [2016/08/05(金) 16:28:54.03 ID:Vnpr4HzA.net] C#からC++で書かれたDLLへのアクセスについて質問です。以下のようなコードなのですが、C#からアクセスした場合、hoge.hoge2 がセットされません。どこが悪いのでしょうか? [C++側(DLL)] typedef struct { wchar_t hoge1[256]; wchar_t hoge2[256]; } HOGE; bool __stdcall func(HOGE* hoge) { wcscpy_s(hoge->hoge1, 256, L"HOGE1"); wcscpy_s(hoge->hoge2, 256, L"HOGE2"); return true; } [C#側] [StructLayout(LayoutKind.Sequential)] public struct HOGE { [MarshalAs(UnmanagedType.ByValArray, SizeConst = 256)] public Char[] hoge1; [MarshalAs(UnmanagedType.ByValArray, SizeConst = 256)] public Char[] hoge2; } [DllImport("hoge.dll", EntryPoint = "func")] public static extern bool func(int index, ref HOGE hoge); hoge = new HOGE(); hoge.hoge1 = new Char[256]; hoge.hoge2 = new Char[256]; bool res = func(0, ref hoge); hoge.hoge1 は "HOGE1"がセットされている。hoge.hoge2 は なにもセットされていない???
160 名前:デフォルトの名無しさん mailto:sage [2016/08/05(金) 16:59:06.04 ID:qtF7W1LG.net] C++の定義とC#の定義とで仮引数が違うみたいだけど? あとあんまり関係ないと思うけど返値がC++のboolならこっちbyteで宣言した方がいい
161 名前:デフォルトの名無しさん mailto:sage [2016/08/05(金) 17:04:53.51 ID:Vnpr4HzA.net] [C#側] public static extern bool func(ref HOGE hoge); でした。
162 名前:デフォルトの名無しさん mailto:sage [2016/08/05(金) 17:57:02.20 ID:YTOm0VxE.net] マーシャリング通さずにfixed char hoge1[256];の方が確実じゃね
163 名前:デフォルトの名無しさん mailto:sage [2016/08/05(金) 19:00:49.52 ID:rSxfnuGG.net] StructLayoutにCharSet=CharSet.Unicodeつけてみるとか
164 名前:デフォルトの名無しさん mailto:sage [2016/08/05(金) 22:42:12.33 ID:1u9wjoQf.net] C#のvirtualを関数に使うのはなんとなくわかるんだけど 変数にvirtual使うとどうなんの?これも上書きみたいなことするの?
165 名前:デフォルトの名無しさん mailto:sage [2016/08/05(金) 22:47:59.88 ID:AgavxPh8.net] >>160 変数にvirtual付けるとコンパイルエラーになります
166 名前:デフォルトの名無しさん mailto:sage [2016/08/05(金) 22:48:47.99 ID:1dJ45Htu.net] >160 関数=(インスタンス)メソッドのこと? virtualに指定出来るのは、メソッドとプロパティだけだよ。 これでピンと来ない場合は想定しているコードを書いてくれれば答えやすいです。
167 名前:デフォルトの名無しさん mailto:sage [2016/08/06(土) 00:03:38.81 ID:FDM+aBaV.net] >>162 >>161 ああわかった プロパティだからvirtualつけることができてたのね サンクス納得した
168 名前:sage [2016/08/06(土) 10:46:11.32 ID:/IrCQqX+.net] 任意の文字列から 「-」、「.」と数値(0〜9)だけを残し余分な文字を取り除きたいのですが スマートな実装方法はありますか?
169 名前:デフォルトの名無しさん mailto:sage [2016/08/06(土) 10:52:45.27 ID:RrWaYmp5.net] >>164 スマートな方法というか正規表現使うか 該当するか1文字ずつチェック(文字のままでもバイト配列に変えても)するしかないような気がする
170 名前:デフォルトの名無しさん mailto:sage [2016/08/06(土) 11:11:59.63 ID:Aiu/11jE.net] >>164 string chars = "-.0123456789"; string result = new string(str.Where(chars.Contains).ToArray());
171 名前:デフォルトの名無しさん mailto:sage [2016/08/06(土) 11:13:17.24 ID:yXATHeUJ.net] Console.WriteLine(Regex.Replace("0aiueo123hoge456", "[^0-9]", ""));
172 名前:デフォルトの名無しさん mailto:sage [2016/08/06(土) 11:14:23.23 ID:yXATHeUJ.net] 「-」もあったんだな。 Console.WriteLine(Regex.Replace("0aiueo-123hoge456", "[^0-9\\-]", ""));
173 名前:デフォルトの名無しさん mailto:sage [2016/08/06(土) 11:15:42.95 ID:yXATHeUJ.net] うがー。「.」もあったんだな。。。「\\.」を追加してくれ。連投すまん。
174 名前:デフォルトの名無しさん mailto:sage [2016/08/06(土) 11:25:23.44 ID:dbq4lnef.net] >>164 var filter = new char[] { '-', '.', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9' }; var target = source.Where(filter.Contains).Aggregate("", (x, y) => x + y);
175 名前:デフォルトの名無しさん mailto:sage [2016/08/06(土) 11:26:25.15 ID:WvVJrckt.net] >>169 あるある、どんまい
176 名前:デフォルトの名無しさん mailto:sage [2016/08/06(土) 11:28:41.55 ID:AMCUmI5q.net] 無意味でもLinq使えばスマートに見えるぞ! あと、拡張メソッドでもいい
177 名前:デフォルトの名無しさん mailto:sage [2016/08/06(土) 11:37:48.57 ID:yXATHeUJ.net] >>166 >>170 色々あって面白いなw
178 名前:デフォルトの名無しさん mailto:sage [2016/08/06(土) 11:42:05.52 ID:dqPdKOk8.net] >>170 これはないわ 非効率すぎるから結合はフィルタかけた後にJoin使え
179 名前:174 mailto:sage [2016/08/06(土) 11:43:35.91 ID:dqPdKOk8.net] 訂正 この場合はJoinじゃなくてStringのコンストラクタだな
180 名前:デフォルトの名無しさん mailto:sage [2016/08/06(土) 11:53:33.90 ID:4WcaCha9.net] 糞遅いコードばかり貼りやがって。
181 名前:デフォルトの名無しさん mailto:sage [2016/08/06(土) 11:58:21.50 ID:GxNcCQSR.net] >>176 Linqは遅い→百万回のループで数十msの差でした はもう飽きた
182 名前:デフォルトの名無しさん mailto:sage [2016/08/06(土) 12:13:45.80 ID:dbq4lnef.net] >>174 https://ideone.com/Ib42NI 手元の結果は TestMethod1→181ミリ秒 TestMethod2→104ミリ秒 TestMethod3→258ミリ秒 であった たまたま気まぐれで書いた俺WIN!!何に勝利したのか分からんけど ぶっちゃけどれでもいいんじゃないか
183 名前:デフォルトの名無しさん mailto:sage [2016/08/06(土) 12:18:42.25 ID:JXt5PACI.net] 10万回の試行でその程度の差なら殆ど誤差みたいなものだな
184 名前:デフォルトの名無しさん mailto:sage [2016/08/06(土) 12:21:41.85 ID:dqPdKOk8.net] >>178 もっと長い文字列でやってみ よくあるLINQ遅いみたいな話じゃなくて、悪名高いループで文字列+=と同じ問題
185 名前:デフォルトの名無しさん mailto:sage [2016/08/06(土) 12:23:06.08 ID:0Ti/jpH+.net] >>178 正規表現のやつだけ、他と文字列違ってない?
186 名前:デフォルトの名無しさん mailto:sage [2016/08/06(土) 12:37:13.85 ID:4WcaCha9.net] 致命的。wpfが糞遅い理由が分かってねーな。
187 名前:デフォルトの名無しさん mailto:sage [2016/08/06(土) 12:44:42.46 ID:JXt5PACI.net] 見当違いなことつぶやき、代案出さずに文句だけは立派な人が来た
188 名前:デフォルトの名無しさん mailto:sage [2016/08/06(土) 12:53:33.75 ID:dhAdgMp9.net] IndexOfAnyでも使って泥臭く書くのが結局一番早そう
189 名前:デフォルトの名無しさん mailto:sage [2016/08/06(土) 12:54:17.70 ID:4WcaCha9.net] wpfのソース見てないんだね。おまえらみたいなコードばっかだよ。
190 名前:デフォルトの名無しさん mailto:sage [2016/08/06(土) 14:11:44.98 ID:/GaBlc8t.net] 優秀ってことか
191 名前:デフォルトの名無しさん mailto:sage [2016/08/06(土) 14:17:42.26 ID:yXATHeUJ.net] ttps://ideone.com/aZQl3d 00:00:00.0474900(10〜256文字長の半角文字列をランダムに100000行作る) それの処理結果 00:00:04.4394780(166氏) 00:00:01.7575421(170氏) 00:00:03.2682252(俺) 正規表現は覚えればシンプルで楽だけど、 そもそも正規表現が重いのは当然で、既知の事実。 機能ムダに多いし。 一応正規表現にはコンパイル済み結果を用いることを強要できる。 >>178 >ぶっちゃけどれでもいいんじゃないか 同意。 面白い情報ありがとう>166&170
192 名前:デフォルトの名無しさん [2016/08/06(土) 14:31:33.02 ID:gSAtyijb.net] 馬鹿な悩み抱えてる暇があったら お前の生活を10分でも効率化する方法でも考えてろクソカスども
193 名前:デフォルトの名無しさん mailto:sage [2016/08/06(土) 15:01:25.95 ID:5meXUbqk.net] >>166 >>170 ありがとうございます!
194 名前:デフォルトの名無しさん mailto:sage [2016/08/06(土) 15:07:06.35 ID:WZNCfna7.net] DataTableのSelectメソッドについて質問です このサイト okwakatta.net/code/dst13.html で条件に当てはまったデータを絞り込んでとってくるコードの勉強をしてます そのサイトのテストコードは難なくできたのですが そのコードを元に条件をパンではなく2016年8月を条件に変更してメッセージボックスに表示したいのですがうまく動作しませんでした どこが間違っているのでしょうか ちなみにそのサイトのColumn1のidの部分を日付に変更してます dataRows =dataset.Tables["Table1"].Select("日付 = #2016/08#"); for (int i = 0; i<dataRows.Length; i++) { MessageBox.Show(Convert.ToString(dataRows[i][0])); }
195 名前:デフォルトの名無しさん mailto:sage [2016/08/06(土) 15:27:48.83 ID:JXt5PACI.net] 日付 <= #開始日# AND #終了日# <= 日付 でもダメ?
196 名前:デフォルトの名無しさん mailto:sage [2016/08/06(土) 15:28:36.09 ID:yXATHeUJ.net] dataRows =dataset.Tables["Table1"].Select("日付 =< #2016/08/01# and 日付 < #2016/09/01#"); じゃないか。違ったらすまん。
197 名前:デフォルトの名無しさん mailto:sage [2016/08/06(土) 15:30:19.63 ID:yXATHeUJ.net] =< × ↓ <= だな。。。
198 名前:デフォルトの名無しさん mailto:sage [2016/08/06(土) 15:41:53.94 ID:JXt5PACI.net] 逆だったわ済まん #開始日# <= 日付 AND 日付 <= #終了日#
199 名前:デフォルトの名無しさん mailto:sage [2016/08/06(土) 15:42:39.24 ID:7SYpUscy.net] >>191-193 そのコード書いてみましたが フィルター式 日付 =< #2016/08/01# and 日付 < #2016/09/01#はBoolean型に対して評価しません になってエラー吐きました
200 名前:デフォルトの名無しさん mailto:sage [2016/08/06(土) 15:48:37.78 ID:7SYpUscy.net] >>194 のコードでできました サイトを見たらフィルターの式は (列名 条件)の書き方じゃないとダメだと思ってましたが if文とかみたいな条件の書き方でもできるんですね! 回答してくださった方ありがとうございました
201 名前:190 mailto:sage [2016/08/06(土) 17:29:04.80 ID:cGwfqBzu.net] 何度もすみません 今度は先程と同じサイト okwakatta.net/code/dst13.html と同じ条件かつその金額の合計をメッセージボックスに表示させようとしてるのですが 加算代入ができなくて困ってます 自分の解釈ではfor文のiで何行目なのか取得し[2]で何列目か取得してると思ったので int a += (int)dataRows[i][2];と書けばfor文が終わるまでパンと付く商品名のpriceを加算できると思ったのですができません 条件を検索しつつ数値を加算させる方法はどう書けばよいでしょうか dataRows =dataset.Tables["Table1"].Select("商品名 LIKE '%パン'"); for (int i = 0; i<dataRows.Length; i++) { int a += (int)dataRows[i][2]; ←ココ MessageBox.Show(Convert.ToString(a)); }
202 名前:デフォルトの名無しさん mailto:sage [2016/08/06(土) 17:35:38.53 ID:RrWaYmp5.net] >>197 int a += Convert.Toint32(dataRows[i][2]); または int a += Convert.Toint32(dataRows[i][2].ToString()); ではだめかな
203 名前:デフォルトの名無しさん mailto:sage [2016/08/06(土) 17:44:45.45 ID:GxNcCQSR.net] >>197 Compute とSum使えばいいんじゃない? https://msdn.microsoft.com/ja-jp/library/system.data.datatable.compute(v=vs.110).aspx
204 名前:デフォルトの名無しさん mailto:sage [2016/08/06(土) 18:31:09.89 ID:4WcaCha9.net] >>187 00:00:00.0201643 00:00:00.6455476 00:00:00.9637530 00:00:00.6177757 おまえ 00:00:00.0286978 おれ やっぱりおまえらのコードは糞おせーわ。というかおまえのPCなんでそんなに遅いんだ。
205 名前:190 mailto:sage [2016/08/06(土) 18:45:36.02 ID:cGwfqBzu.net] >>198 どちらもint a += (int)dataRows[i][2];と同じエラーが出ますね ちなみに ;が必要です '+='は無効ですと書いてます >>199 MessageBox.Show(Convert.ToString(dataTable1.Compute("Sum(Price)",null))); と書くとPrice列のすべてを合計するので MessageBox.Show(Convert.ToString(dataTable1.Compute("Sum(dataRows[i][2])",null))); と書きましたが 集約引数の構文エラー 可能なChild修飾子を含むtン一列の引数を指定してください とエラーが出ました
206 名前:デフォルトの名無しさん mailto:sage [2016/08/06(土) 18:46:10.31 ID:xS5ikndo.net] 愉快なお方w
207 名前:デフォルトの名無しさん mailto:sage [2016/08/06(土) 18:47:38.07 ID:yXATHeUJ.net] >>200 ソースは載せろよ。 俺のPCは時代遅れ(FMVざまぁ)だからだろう。 そして、逆転現象起きてて不思議がってる。
208 名前:デフォルトの名無しさん mailto:sage [2016/08/06(土) 18:49:50.34 ID:CVktsp8z.net] >>201 とりあえずforの外側でaを定義したら int a+=はダメだろ
209 名前:デフォルトの名無しさん mailto:sage [2016/08/06(土) 18:56:06.11 ID:dbq4lnef.net] >>199 dataset.Tables["Table1"].Compute("Sum(価格)", "商品名 LIKE '%パン'"); を実行可能にするにはstring[] valueをint[] valueに書き直し dt.Columns.Add("価格", typeof(int)); と変える必要がある なお>>197 で累計されないのはint aのスコープがfor内だからじゃね
210 名前:190 mailto:sage [2016/08/06(土) 19:02:08.33 ID:cGwfqBzu.net] >>204 int a += ・・・の部分で初期化してますからfor文の外側では定義してませんよ? ちなみにfor文の中で int a; int a+= ・・・と書いても同じでした
211 名前:デフォルトの名無しさん mailto:sage [2016/08/06(土) 19:05:50.55 ID:CVktsp8z.net] >>206 何で中で書くんだw >>205 の一番下も読めよ int a=0; for { a+= } じゃないと結果が出ないぞ
212 名前:190 mailto:sage [2016/08/06(土) 19:32:26.69 ID:cGwfqBzu.net] >>205 Selcet文の条件式をそのままComputeでも使えるのですね! string[] valueをint[] valueの部分はdatasetの価格をint32に指定してあるので特に必要なかったみたいです >>207 forの外に書いたらできましたw 条件文の練習をもっとやらないと無駄が多いコードになるのがわかったのでもっと勉強したいと思います 回答してくれた方々ありがとうございました
213 名前:デフォルトの名無しさん mailto:sage [2016/08/06(土) 21:22:54.34 ID:1o0VXbRv.net] LinQのdistinctで被り以外をデータベースや配列から抜き出したいんだけど 一行のみかひとつの情報しか抜け出せない 助けて db id 名前 チーム 1 A 111 2 B 222 3 C 333 4 D 111 5 E 222 6 F 111 ここから 1 A 111 4 D 111 6 F 111 を抜き出したいんだけど 1A 111 または 1 4 6 みたいな列情報しか抜け出せない
214 名前:デフォルトの名無しさん mailto:sage [2016/08/06(土) 21:36:27.09 ID:AtyBvCCV.net] どういうlinq書いたんだよう select(チーム名==111) するだけだろう
215 名前:デフォルトの名無しさん mailto:sage [2016/08/06(土) 21:37:06.10 ID:AtyBvCCV.net] あ、この場合はwhereか。
216 名前:デフォルトの名無しさん mailto:sage [2016/08/06(土) 21:42:15.42 ID:kgdaGH1I.net] >>211 それで抜き出されるのどこに格納したらええのかさっぱりできんくて (From d in db where d.チーム == チーム条件 select d ). ToList() こんなんかいてる