トップページ⇒tech
1002コメント219KB

ふらっと C#,C♯,C#(初心者用) Part123 [無断転載禁止]©5ch.io

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2016/07/31(日) 12:02:50.03ID:845Zva4M
「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。

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

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

なお、テンプレが読めない回答者は邪魔なので後述のC#相談室に移動して下さい。
C#に関係の無い話題や荒らしの相手や罵倒レスはやめてください

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

■前スレ
ふらっと C#,C♯,C#(初心者用) Part122
http://echo.2ch.net/test/read.cgi/tech/1468078489/

■関連スレ
C#, C♯, C#相談室 Part91
http://echo.2ch.net/test/read.cgi/tech/1467142749/

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

■情報源
https://msdn.microsoft.com/en-us/library/gg145045.aspx
http://referencesource.microsoft.com/
0002デフォルトの名無しさん2016/07/31(日) 12:14:02.41ID:9Z6DmbVF
:::::::::::/           ヽ::::::::::::
:::::::::::|  ば  じ  き  i::::::::::::
:::::::::::.ゝ か   つ   み  ノ:::::::::::
:::::::::::/  だ  に  は イ:::::::::::::
:::::  |  な。       ゙i  ::::::
   \_         ,,-'
――--、..,ヽ__  _,,-''
:::::::,-‐、,‐、ヽ. )ノ      _,,...-
:::::_|/ 。|。ヽ|-i、      ∠_:::::::::
/. ` ' ● ' ニ 、     ,-、ヽ|:::::::::
ニ __l___ノ     |・ | |, -、::
/ ̄ _  | i     ゚r ー'  6 |::
|( ̄`'  )/ / ,..    i     '-
`ー---―' / '(__ )   ヽ 、     >>1
====( i)==::::/      ,/ニニニ
:/     ヽ:::i       /;;;;;;;;;;;;;;;;
0003デフォルトの名無しさん2016/07/31(日) 12:35:06.34ID:m2m9StIS
おかしな人が湧きやすいスレだが、C#がそれだけ使われてるってことだろうな…
ともあれ >>1 乙
0004デフォルトの名無しさん2016/07/31(日) 14:42:43.53ID:JTJLwIya
【閲覧注意】戦闘に巻き込まれて頭部を切断された少女の遺体。これがリアルなシリア。
http://dqnworld.com/archives/34.html
これが本当の戦争の恐怖。この少女には大人の戦争は関係ないですからね。巻き込まれた少女の遺体を持って何か
を訴えかけている男たちの映像です。

【閲覧注意】シリアで反体制派の兵士が顔を吹き飛ばされてしまう瞬間。
http://dqnworld.com/archives/89.html
スローモーションが怖すぎる・・・。

【閲覧注意】アッラーフアクバルを叫びながら少年を斬首する映像を公開する。
http://dqnworld.com/archives/3975.html
点滴?のようなものが見えるんだけど。助けられた少年じゃなかったのか。助けられた所を強奪されてアッラーフ
アクバル?なのかしら・・・。

【閲覧注意】磔にされた戦闘機パイロットの遺体。シリアにて。
http://dqnworld.com/archives/3996.html
今日のアッラーフアクバル動画。

【閲覧注意】この首吊り自殺、足スレスレだけど本当に死ねてる?
http://dqnworld.com/archives/4001.html
中国で撮影された首吊り自殺の映像です。既に死んでいると書いてあるけど自分で揺らしているようにみない?www

妻の目の前でぶっ飛ばされた旦那さん?これは死んだかな(°_°)
http://dqnworld.com/archives/4004.html
さすがにこれだけ飛ばされたら助からないかな・・・。

【閲覧注意】あおむけでゲロを吐きまくっている男性。助けてやれよ・・・。窒息するぞ(@_@;)
http://dqnworld.com/archives/4007.html
これ結構危ないんじゃないの?撮影してないで横向きにしてやれよ。これ窒息する可能性あるだろ。
0005デフォルトの名無しさん2016/07/31(日) 16:19:39.67ID:yOUiaiD9
>>1
乙
0006デフォルトの名無しさん2016/07/31(日) 16:41:06.49ID:a7xaHxHC
>>1
スレ立て乙

質問からの派生の議論などは↓のスレで
ふらっと C#,C♯,C#(議論用)
http://echo.2ch.net/test/read.cgi/tech/1469538912/
0007デフォルトの名無しさん2016/07/31(日) 16:58:20.07ID:tdu9NojY
http://imgur.com/hulL0Ns.jpg
自分の説明が悪いようで申し訳ないです
こういう感じでテーブルを作りたいと考えてます

public 科目 {
id
科目名
講師リスト
生徒リスト
}

それでもって追加するときに講師と生徒リストを結びつけたいと…
ListBとCは同時に存在してはいけないとの話ですが
それだと生徒から講師を、講師から生徒を検索するのができなくなりませんか?
イメージとしてなんですが、講師・生徒が科目の外部キーを持つように、
講師には生徒の※2の青丸を、生徒には講師の※1の青丸を入れたいってなってます
0008デフォルトの名無しさん2016/07/31(日) 17:00:54.97ID:tdu9NojY
>>7
入れたいと言うよりは自動作成されるDのとこにある要素が※1と※2のみになってます
ただ値が入らず…のような状況で
0009デフォルトの名無しさん2016/07/31(日) 17:17:48.08ID:7sIN5pY9
上を基本にすると科目・講師が1対多、科目・生徒が多対多
さらに科目に追加する講師と生徒は関係性があり、その関係は多対多
多対多の関係はEFが勝手に中間テーブル作ってくれてそこには値が入ってない
どうすれば入るのだろうか

って話でしょ
0010デフォルトの名無しさん2016/07/31(日) 17:19:35.06ID:7sIN5pY9
>>9
科目・生徒も1対多

科目(C)を中間テーブルと間違えてるから俺と話があってないんだわ
0011デフォルトの名無しさん2016/07/31(日) 17:24:13.82ID:SlcEPNYS
>>7
>生徒から講師を、講師から生徒を検索する
科目が講師、生徒への(逆向きの)リレーションをもって
生徒-科目-講師 または、講師-科目-生徒 とたどればいいだけ

ただその図のテーブルだと、講師が持てる科目は1つだし、生徒が持てる科目も一つだぞ
0012デフォルトの名無しさん2016/07/31(日) 17:33:22.27ID:SlcEPNYS
>>9-10
元の話はA,Bのリレーション飲みに着目して話をしてたんだが
だから、Cはエンティティとして必要か?って聞いてたわけだが
Cがエンティティとして必要なら(科目であるなら当然YESなわけだが)、Aが持つのはC
つまり生徒が持つのは科目、講師が持つのも科目、生徒と講師の関係は科目を間に挟んでこそ成り立つ
それだけの話だと思うが

ちなみに
>科目・講師が1対多
だと、一つの科目を複数の講師が講義する ってことになるんだが
一人の講師は複数の科目を受け持つ が正しいんじゃないかね

要件的には前者の要望もあり得るけど、それだとさらに設計ややこしいぞ
0013デフォルトの名無しさん2016/07/31(日) 17:35:48.10ID:7sIN5pY9
いや俺この人と話し合わない気がしてきた
そういう逆引きじゃなくて科目から講師を、講師から生徒を辿れるようにリレーション作りたいんでしょ…と俺は思うんだが
中間テーブルに拘ってるのはそういう意味でしょ
そもそもレスを見直して整理したら「中間テーブルは作成される」「でも中間テーブルに値は入らない」「何故ですか」
0014デフォルトの名無しさん2016/07/31(日) 17:37:50.07ID:0ENkURmo
>>7
情報の重複を避けるなら検索時にたぐる。検索性能が重要なら更新時に整合性をとるように
メンテナンスする。このどちらしかないだろう。
なんか、やろうとしていることがどっちつかずのように思う。
0015デフォルトの名無しさん2016/07/31(日) 17:38:34.43ID:7sIN5pY9
>>12
科目に対して講師たくさん居るから別に問題ないでしょ
むしろ講師のが多くて普通だと思うけど
複数の人が講義するじゃなくて、その科目を講義している人が複数居るって言ったら納得できんかね
0016デフォルトの名無しさん2016/07/31(日) 17:43:50.97ID:7sIN5pY9
もうさ科目吹っ飛ばしてシンプルにしたらどうだ
講師・生徒の多対多

public class A {
public int Id {get;set;}
public virtual List<B> ListB {get;set;}
public A(){ ListB = new List<B>();}
}

public class B {
public int Id {get;set;}
public virtual List<A> ListA {get;set;}
public B(){ ListA = new List<A>();}
}

static void main(){
A a = new A();
B b = new B();

// 1.Aへ要素を追加
// 2.Bへ要素を追加
}

これでAB作られるわけだけどそれぞれのリスト持つから関係をどう作れば?って話でしょ
たぶん1.2 解決したら終わり
0017デフォルトの名無しさん2016/07/31(日) 17:56:44.40ID:SlcEPNYS
>>13
科目、講師、生徒という話をするのであれば、少なくともその範囲においては「中間テーブル」なんてないぞ
(科目と生徒で中間テーブルが必要になるかもしれんが、そこには言及してないので)
科目は中間テーブルではないし、そういう主張も説明してないはずだが

そういう坂引きのそういうが何をさしてるのかわからんが
>科目から講師を、講師から生徒
科目から講師は、科目が講師(群)を持つだけ
講師から生徒は、間に科目を挟め
それだけだが

>>15
>その科目を講義している人が複数居る
要件としてあり得ることは言ってるだろ
今回がそこまで考慮されてるのか?考慮するのか?って話だぞ
まさに共同講演でもなければ、講師の違う科目は別科目として扱うほうが楽だぞ
0018デフォルトの名無しさん2016/07/31(日) 18:06:10.43ID:SlcEPNYS
>>16
それをやると、AとBの「中間テーブル」が勝手に作成されて
Aを新規追加したら、A.ListBとAの関係は中間テーブルに勝手に保存される

そんなのは前スレのどっかでできたって言ってただろ
0019デフォルトの名無しさん2016/07/31(日) 18:08:13.77ID:/2R1tIBn
>>7
科目も結合条件に入れると、RDBのややこしい話が出てきてしまうので、科目を無くした例じゃダメかい?

それとも、科目が前提で悩んでるなら、条件をしっかり書いた方が良いと思うよ。
0020デフォルトの名無しさん2016/07/31(日) 18:12:17.93ID:ryfTyHLn
俺と似たクラス図の問題抱えてるわ

俺が持つ写真リスト
俺が持つ友人リスト
これが科目に当たるCの部分

写真リストは持っている写真
友人リストは写真に写っている人達
これがB, Cかな

写真1にはX, Y, Zが写っている
写真2にはX, Wが写っている
写真3にはX, Zが写っている
ってことはこれも多対多じゃん?
うわああああああああああ

写真1には誰が?→XYZ
Xはどこに?→写真1, 写真2, 写真3
一方通行の向きでこうしたいってなってるけどこれも写真と友人に双方のリスト持たせなくて良いのか?
それがないとLinQ使っても検索できる気がしないんだけど
やろうとするとそれ専用のカラムをつけないといけない気がする
0021デフォルトの名無しさん2016/07/31(日) 18:19:28.97ID:/SDpmLey
>>18
え?だからそこの新規作成のコードで悩んでるんじゃないのか…?
俺も具体的にコードかけてないからでかい口叩けないけど
0022デフォルトの名無しさん2016/07/31(日) 18:27:23.21ID:SlcEPNYS
>>18
単純にAとBで多対多ってだけならできるんじゃないかと思うんだが

今回は三つのエンティティが必要なのに、
それを二つのエンティティとそのリレーションだけでなんとかしようとするから無理がある
0023デフォルトの名無しさん2016/07/31(日) 18:33:38.70ID:/2R1tIBn
>> 20
C#のコードになってないけど、こんなのじゃダメ?
各メソッドは写真友人の静的リストを操作。

写真{写真ID , Add友人(友人ID), Remove友人(友人ID) ,Get友人List()}
1
2
3

友人{友人ID , Get写真List()}
X
Y
Z

写真友人{写真ID,友人ID}

写真友人の静的リスト
1,X
1,Y
1,Z
2,X
2,W
3,X
3,Z
0024デフォルトの名無しさん2016/07/31(日) 18:41:18.13ID:a7xaHxHC
盛り上がっているけど元の質問者の意図から外れてないだろうな?w
0025デフォルトの名無しさん2016/07/31(日) 18:42:04.34ID:tdu9NojY
>>20
自分よりこちらのが例として良い気がします
まさにこんな感じです…

>>11
>>14
検索時に手繰ることも考えたのですが講師から生徒、生徒から講師を手繰るための専用の属性を追加する必要あるんじゃないか?となって
それならそれぞれを追加するときに関係付けれたら良いよねとなって今に至っています。
科目を通した講師と生徒の関係性は保てるけども
講師と生徒だけの関係性ないよね?と言われててコーディングしなおしてまして…

>>20さんのだと識別できる写真から友人を、友人から写真を見つけるためには関連テーブルないと…みたいに同じ状況です
0026デフォルトの名無しさん2016/07/31(日) 18:45:36.60ID:hOdlxuRW
>>23
静的リストってのは自分で作るやつでええのかい
なんか出来そうで出来なさそう

質問してる人俺と同じところで悩んでるからタイムリーすぎるわwww

写真-俺-友人と辿れそうな気もするけども
俺の例だと友人に写真1だと判断させる何かが要るよね
そこで悩んでるのかな それなら同じ
0027デフォルトの名無しさん2016/07/31(日) 18:49:53.18ID:/2R1tIBn
>>26
DBに作るならテーブル
プログラム上なら自分で作ったList<写真友人>を静的に持っておけば良いと思うよ。
0028デフォルトの名無しさん2016/07/31(日) 18:54:30.55ID:hOdlxuRW
>>27
staticってことかな
俺も静的に自分で作るのは考えたのだけど今質問してる人と同じで自動生成されるなら
それ使いたいじゃん?ってなって使おうとしてる
ただ使うと片方を追加したときにもう片方に反応して異常に追加される問題が発生してる
entityState.Unchangedがうまくできない
db.Entry(xx).Stateの引数がなに!?ってつまってる
0029デフォルトの名無しさん2016/07/31(日) 18:59:32.34ID:0ENkURmo
>>25
>>7の図を信用していいなら、たぐるだけならAとBだけで科目IDを介して相互に可能だろう。
そのうえで検索の効率を改善したいというのであれば、その結果と同じものをそれぞれが持つよう
追加/削除の際にメンテナンスすればいいし、たとえば講師と生徒の組み合わせに対して
問い合わせしたいということであればそういうテーブルを用意すればよい。
0030デフォルトの名無しさん2016/07/31(日) 19:07:58.59ID:hOdlxuRW
>>29
横やりだけど俺と同じ状況って言ってるから科目は便宜的なもんだと思う
講師一人に対して生徒複数をn回繰り返してそのなかで生徒から講師を見たときに多対多が生まれてしまうよねって話かと思うわ
説明下手ですまん 俺と同じらしいから
>>20で考えると良いかも
科目・講師・生徒は俺も説明しづらい
0031デフォルトの名無しさん2016/07/31(日) 19:37:21.76ID:0ENkURmo
ん、悪いが意味がわからん。関係が多対多ならそういうものとして表現する必要があるだろう。
多対多のどこで困っているのか?

>講師一人に対して生徒複数をn回繰り返してそのなかで生徒から講師を見たときに多対多が生まれてしまう

最初に講師の条件を指定しているんだからその条件を入れればそうはならんはず。

select * from A
join B on B.x = A.x
join C on C.y = A.y

BとCの条件を忘れると結果がB×Cになってしまうという初歩的なミスに近い。
0032デフォルトの名無しさん2016/07/31(日) 19:40:31.97ID:SlcEPNYS
多対多ってのは二つのエンティティ間のリレーション(+中間テーブル)の話
科目・講師・生徒ってのは三つのエンティティの話
0033デフォルトの名無しさん2016/07/31(日) 19:46:32.00ID:SlcEPNYS
とりあえずコード投下しとくわ
public class 科目
{
[Key, DatabaseGenerated(DatabaseGeneratedOption.None)]
public int id { get; set; }
public string 科目名 { get; set; }
public List<講師> 講師リスト { get; set; }
public List<生徒> 生徒リスト { get; set; }
public 科目() { 講師リスト = new List<講師>(); 生徒リスト = new List<生徒>(); }
}
public class 生徒
{
[Key, DatabaseGenerated(DatabaseGeneratedOption.None)]
public int Id { get; set; }
public string 生徒名 { get; set; }
public List<科目> 科目リスト { get; set; }
public 生徒() { 科目リスト = new List<科目>(); }
}
public class 講師
{
[Key, DatabaseGenerated(DatabaseGeneratedOption.None)]
public int Id { get; set; }
public string 講師名 { get; set; }
public List<科目> 科目リスト { get; set; }
public 講師() { 科目リスト = new List<科目>(); }
}
0034デフォルトの名無しさん2016/07/31(日) 19:46:48.57ID:SlcEPNYS
class MyDbContext : DbContext
{
public DbSet<科目> 科目リスト { get; set; }
public DbSet<生徒> 生徒リスト { get; set; }
public DbSet<講師> 講師リスト { get; set; }
public MyDbContext()
{
this.Database.Log = p => System.Diagnostics.Debug.WriteLine(p);
Database.SetInitializer(new DropCreateDatabaseIfModelChanges<MyDbContext>());
System.Diagnostics.Debug.WriteLine(this.Database.Connection.ConnectionString);
}
}
0035デフォルトの名無しさん2016/07/31(日) 19:47:49.62ID:SlcEPNYS
using (var db = new MyDbContext())
{
db.科目リスト.Add(new 科目 { id = 1, 科目名 = "政治学" });
db.科目リスト.Add(new 科目 { id = 2, 科目名 = "経済学" });
db.科目リスト.Add(new 科目 { id = 3, 科目名 = "社会学" });
db.講師リスト.Add(new 講師 { Id = 1, 講師名 = "山田" });
db.講師リスト.Add(new 講師 { Id = 2, 講師名 = "田中" });
db.講師リスト.Add(new 講師 { Id = 3, 講師名 = "池上" });
db.生徒リスト.Add(new 生徒 { Id = 1, 生徒名 = "ジョン" });
db.生徒リスト.Add(new 生徒 { Id = 2, 生徒名 = "マイク" });
db.生徒リスト.Add(new 生徒 { Id = 3, 生徒名 = "ジェーン" });
db.SaveChanges();

続く
0036デフォルトの名無しさん2016/07/31(日) 19:48:13.11ID:SlcEPNYS
//既存生徒、講師を持った新規科目の追加
var k = new 科目 { id = 991, 科目名 = "池上 特別講義" };
k.講師リスト.Add(db.講師リスト.FirstOrDefault(p => p.講師名 == "池上"));
k.生徒リスト.AddRange(db.生徒リスト);
db.科目リスト.Add(k);
db.SaveChanges();
//生徒も講師も新規な新規科目
k = new 科目 { id = 992, 科目名 = "臨時講習会" };
k.講師リスト.Add(new 講師 { Id = 9921, 講師名 = "外部講師1" });
k.講師リスト.Add(new 講師 { Id = 9922, 講師名 = "外部講師2" });
k.生徒リスト.Add(new 生徒 { Id = 9921, 生徒名 = "外部聴講者1" });
k.生徒リスト.Add(new 生徒 { Id = 9922, 生徒名 = "外部聴講者2" });
k.生徒リスト.Add(new 生徒 { Id = 9923, 生徒名 = "外部聴講者3" });
k.生徒リスト.Add(new 生徒 { Id = 9924, 生徒名 = "外部聴講者4" });
db.科目リスト.Add(k);
db.SaveChanges();

続く
0037デフォルトの名無しさん2016/07/31(日) 19:49:08.60ID:SlcEPNYS
//外部講師1の全生徒検索
var ks = db.講師リスト.FirstOrDefault(p => p.講師名 == "外部講師1").科目リスト.SelectMany(p => p.生徒リスト);
if (ks == null) return;
foreach (var item in ks)
{
Console.WriteLine(item.生徒名);
}


これでまだ何かあるならもう知らん
0038デフォルトの名無しさん2016/07/31(日) 19:49:21.54ID:a7xaHxHC
>>36
■コードを貼る場合は↓を使いましょう。
http://ideone.com/
https://dotnetfiddle.net/
参照しにくい上にレスの無駄遣いになる
0039デフォルトの名無しさん2016/07/31(日) 19:51:10.96ID:SlcEPNYS
ああ、最後に}が1個抜けた
>>33がエンティティ定義
>>34がコンテキスト定義
>>35からが操作側のコードな
0040デフォルトの名無しさん2016/07/31(日) 19:51:36.36ID:/2R1tIBn
http://ideone.com/TowsRy
http://ideone.com/5bG0vs

なんか間違ってたらスマンな。
ローカルでは普通に動いた。
中間テーブルにもデータが出来てる。
0041402016/07/31(日) 19:54:16.46ID:/2R1tIBn
SaveChangesが2回入ってしまった。
途中のは消してもOK
0042デフォルトの名無しさん2016/07/31(日) 20:02:32.08ID:SlcEPNYS
>>38
すまん。次からそうする
エンティティ定義だけでもここで示したかったんだ
勢いで全部張った
今では反省している
0043デフォルトの名無しさん2016/07/31(日) 21:18:29.04ID:hOdlxuRW
このコードって俺の関係でも使えるのかな
0044デフォルトの名無しさん2016/07/31(日) 21:24:06.50ID:hOdlxuRW
レスを見直してたんだけど
講師の人のだと外部キーとしてListBとCのどちらか必要ないってのは何故なんだろ
講師から見たら科目・生徒をそれぞれを紐付ける重要なファクターだと思ってしまう
0045デフォルトの名無しさん2016/07/31(日) 21:33:38.39ID:SlcEPNYS
>>44
講師生徒の話と、ABCの話を混ぜるなと

講師と生徒に直接の関係がないから、講師が生徒を持ってるのはおかしい
あるいは
A.ListBとA.C.LisstBが必ず同一なら、同一の情報を複数個所に持つ必要がない

同じことしか言ってないし、C#もLinqも関係ない話だからそろそろ終わりにしてくれ
0046デフォルトの名無しさん2016/07/31(日) 22:44:17.15ID:KRNaJHTC
それにしてもセミの鳴き声がうるさいなw
0047デフォルトの名無しさん2016/08/01(月) 02:30:05.89ID:whHwDgoj
なんで切れてんだこいつ
0048デフォルトの名無しさん2016/08/01(月) 11:01:28.50ID:O5g9L92b
プログラミングでフラッシュっていったら初期化のことですか?
それともデータを消すということなのか、いまいちわかりません
0049デフォルトの名無しさん2016/08/01(月) 11:09:29.37ID:9b8KRrTw
人で例えると下剤を飲むカンジかな
0050デフォルトの名無しさん2016/08/01(月) 11:17:47.86ID:cs1OuQE6
トイレの流すボタンも英語でFlash書いてあるな
まーバッファに溜まったもの全部処理して空にする
0051デフォルトの名無しさん2016/08/01(月) 11:59:02.14ID:yIP/hXrs
flush じゃなくて?
Hattenが流れるトイレ
0052デフォルトの名無しさん2016/08/01(月) 12:00:39.94ID:3q+qs35i
>>48
flush はデータキャッシュの仕組みの一部
受け渡しを省いて貯めこんだデータを一気に吐き出す
大抵は少しずつ吐き出してるから気にしないことも多いけど
これを忘れるとデータが行方不明になったりする

Flash なら Web で主流だったマルチメディアのための技術
ただし既に寿命が尽きた
0053デフォルトの名無しさん2016/08/01(月) 13:05:26.23ID:0PxnJBWw
Flushは便所を流すもので、Flashは禿頭に輝きを足すものだ。
0054デフォルトの名無しさん2016/08/01(月) 13:24:33.39ID:ju4FPINm
髪の話をするな繰り返す髪の話をするな
0055デフォルトの名無しさん2016/08/01(月) 14:31:00.92ID:0PxnJBWw
>>53
Oh, Your head is Glitter!
※「髪」の話ではない。
0056デフォルトの名無しさん2016/08/01(月) 16:30:14.78ID:LUOh4w+m
dataSetクラスのRejectChangesメソッドについて質問です
メロンパンの価格を105円から110円に変更した後にRejectChangesメソッドを使って変更前の105円に戻すサンプルコード書いてるのですが
dataset.Tables["Table1"].RejectChanges();を実行させるとTable1の全データが空白になります
dataset.Tables["Table1"].Rows[0].RejectChanges();と行を指定するとその行だけが消えて
サイトに書いてるような編集前に戻すことができないのですがどこが間違っているのでしょうか
ご教授ください

http://okwakatta.net/code/dst12.html
0057デフォルトの名無しさん2016/08/01(月) 16:30:50.61ID:buiAh0Ub
>>52
ため込んだデータはそこにあるのになんでflushしないとデータが消えるんですか?
0058デフォルトの名無しさん2016/08/01(月) 16:41:36.34ID:LUOh4w+m
自己解決しました


dataset.Tables["Table1"].AcceptChanges();を変更したいコードの上に書けばよかっただけみたいです
0059デフォルトの名無しさん2016/08/01(月) 17:14:31.62ID:cesk8lNx
>>57
c#のメソッドの話ではないので
スレ立てるまでもない質問はここで 143匹目 [無断転載禁止]©2ch.net
http://echo.2ch.net/test/read.cgi/tech/1464139565/
に移動してください
0060デフォルトの名無しさん2016/08/01(月) 19:33:00.40ID:EwKQYn8n
>>48
フラッシュの意味が知りたいならバッファーとかキャッシュとかが
なぜ必用になるのかを理解する必要がある。
0061デフォルトの名無しさん2016/08/01(月) 20:05:09.44ID:Pl/m9xU5
>>54
変な帽子〜
0062デフォルトの名無しさん2016/08/02(火) 01:47:26.69ID:1tBm9uAw
頭かゆい
0063デフォルトの名無しさん2016/08/02(火) 08:11:40.81ID:WvYs1Olo
>>50
トイレでFlash焚くと逮捕されますよ
0064デフォルトの名無しさん2016/08/02(火) 17:02:17.62ID:4WoLw3FF
Task.Factory.StartNew()を断続的に使用しているのですが、
何回も繰り返している内に遅くなってくるのは、なぜでしょうか?

ちなみに、スレッドは2個以上立ち上がらないように、処理はしています。
0065デフォルトの名無しさん2016/08/02(火) 19:29:24.95ID:zxqOD1qT
>Task.Factory.StartNew()を断続的に使用しているのですが、
>何回も繰り返している内に遅くなってくるのは、なぜでしょうか?

Taskは確かに完了してんの?
Task内の処理が遅くなるの?スケジューリングが遅くなるの?

>ちなみに、スレッドは2個以上立ち上がらないように、処理はしています。

これはどうやってやってるの?
0066デフォルトの名無しさん2016/08/02(火) 19:34:29.82ID:PbRjMUHM
>>59
話が発展して他の言語の話になっただけだろ
お前頭おかしいの?うっとうしいからこのスレから消えろ
0067デフォルトの名無しさん2016/08/02(火) 19:44:08.05ID:JEZ5M90/
でも話が冗長だったよね
0068デフォルトの名無しさん2016/08/02(火) 19:46:44.78ID:S5QMVoml
そもそもの質問が
>プログラミングでフラッシュっていったら
だったからなぁ…
(普通はくだ質スレ案件)
0069デフォルトの名無しさん2016/08/02(火) 19:49:24.49ID:S5QMVoml
あ、前スレでPOSTがどうたらやってた人か?
その続きってことか?

(…なら追い出されて当然…とか言うとまたキレるからやめとこう)
0070デフォルトの名無しさん2016/08/02(火) 19:50:29.93ID:PbRjMUHM
関連として出てきた話すらこっちのスレでどうぞっていうだろ?
9割C#の話で対比で別の言語の話が出たとしてもだ、自治もここまでくるとキチガイの域
0071デフォルトの名無しさん2016/08/02(火) 19:51:01.29ID:LBy6cWLg
>>68
だよな。
0072デフォルトの名無しさん2016/08/02(火) 19:51:07.63ID:PbRjMUHM
>>69
(…なら追い出されて当然…とか言うとまたキレるからやめとこう)
この一行いる?ww
0073デフォルトの名無しさん2016/08/02(火) 19:52:16.33ID:LBy6cWLg
>>70
9割C#の話で対比で別の言語の話が出たとしてもだ、自治もここまでくるとキチガイの域

>>ここまでくるとキチガイの域<<

>>キチガイの域<<

・・・これがサイコパシーか。
0074デフォルトの名無しさん2016/08/02(火) 19:53:16.80ID:1biageaY
>C#に関係の無い話題や荒らしの相手や罵倒レスはやめてください
よろしくお願いします
0075デフォルトの名無しさん2016/08/02(火) 19:53:58.84ID:PbRjMUHM
盛り上がってきた?
ID:LBy6cWLg
ID:LBy6cWLg
は煽り屋だから絶対にレスは怠らないんだよな
反論しようかなぁ…
0076デフォルトの名無しさん2016/08/02(火) 19:59:46.23ID:LBy6cWLg
>>70
とりあえず、自分で調べて覚えていくといいよ。

ttps://msdn.microsoft.com/ja-jp/library/system.io.stream.flush(v=vs.110).aspx
ttps://msdn.microsoft.com/ja-jp/library/system.io.stream.close(v=vs.110).aspx

例えばこれ。
機械翻訳で日本語が変だから、英語モードにして、マウスを英文に当てながら日本語訳と照らしあわせて読むと便利。
0077デフォルトの名無しさん2016/08/02(火) 20:00:54.63ID:PbRjMUHM
なんで俺が質問したことになってんのかなぁ…
0078デフォルトの名無しさん2016/08/02(火) 20:01:50.48ID:PbRjMUHM
自治厨って何が楽しいんだろう?
話が弾めばそれでよくね?
0079デフォルトの名無しさん2016/08/02(火) 20:03:01.77ID:l2W1ufxp
いつもの連投君だからみんなスルーしてね
0080デフォルトの名無しさん2016/08/02(火) 20:03:44.52ID:LBy6cWLg
あぼ〜んしました。
0081デフォルトの名無しさん2016/08/02(火) 20:09:29.37ID:PbRjMUHM
どんな話題でも受け付けるのにflushの話もだめってちょっとおかしくね?
flushとC#の関係で話弾ませばいいでしょ
0082デフォルトの名無しさん2016/08/02(火) 20:15:54.16ID:PbRjMUHM
>>80
いっとくけど煽った事実を取り消すために質問に答えてもお前がまともな人間ではないことは確かだぞw
こういう話題もいいんじゃね?的な提案に対してよくそれだけ舐めた口がきけるな
0083デフォルトの名無しさん2016/08/02(火) 20:23:15.88ID:PbRjMUHM
はい次w
0084デフォルトの名無しさん2016/08/02(火) 20:37:36.46ID:PbRjMUHM
>>79
違います、スレ進行は平和にいきましょう
0085デフォルトの名無しさん2016/08/02(火) 20:46:08.44ID:HL5T2dK4
>>81
その通りだから馬鹿は無視してレスすりゃいいんだよ。
だいたい言うまでもないが「○○の話題は禁止」なんてレスが一番非生産的でスレ違い。
0086デフォルトの名無しさん2016/08/02(火) 21:23:22.41ID:zxqOD1qT
なんだいつものか
とっとと死ねよ
0087デフォルトの名無しさん2016/08/02(火) 21:24:28.86ID:cFVAdB/l
他人に文句を言うんじゃくて答えてあげればいいだろ

答えられないなら、質問の内容がこのスレにあっているか判断できてないんだから誘導した他の人に文句言うなよ
一般的な話なら他のスレでやったほうが詳しい人やわかりやすい説明できる人が多いだろ

Flushの動作は実装に強く依存するから下手に具体的なこと書くと不正確だったり、当てはまらなかったりするんだよなあ
C#レベルだと、「そういう決まりだから」が答え
0088デフォルトの名無しさん2016/08/02(火) 21:44:17.44ID:PbRjMUHM
誘導してる奴こそ質問もしないし答えもしないし存在価値ないだろ…
Flushについては俺はどうでもいいけどさ、Bufferとの違いが分からないくらいかな
0089デフォルトの名無しさん2016/08/02(火) 21:52:45.92ID:HL5T2dK4
抽象的な答えはキャッシュを実体に反映させるのがflushって感じかな。

だから前も書いたけどそもそも何故どういう場面でキャッシュが必用になるか理解してないと
動作の意味を実感するのは難しいのかもしれない。
0090デフォルトの名無しさん2016/08/02(火) 21:56:38.82ID:PbRjMUHM
OS理解してないと言葉だけ見て色々考えても仕方ないんじゃない?
0091デフォルトの名無しさん2016/08/02(火) 23:30:14.10ID:9ycx7XAc
つ

ふらっと C#,C♯,C#(議論用) [無断転載禁止]©2ch.net
http://echo.2ch.net/test/read.cgi/tech/1469538912/
0092デフォルトの名無しさん2016/08/03(水) 02:38:27.77ID:FoKdYgy2
>>88
回答もせず暴言を吐き、質問しにくい環境を作り出すお前はそれ以下だぞ

Flushとかキャッシュの考え方はOSというよりももっと一般的なものだな
ソフト側で実装することもあるし、ディスクのミドルウェアとかでも使われうる技術
OSとかミドルウェアとかはさすがにスレチだから、そういうのも含めて誘導だろ
0093デフォルトの名無しさん2016/08/03(水) 06:32:38.78ID:hBXg68Dk
>>91
過疎スレへの誘導…嫌がらせ行為に他ならない
こんな奴が批判されずにずっと粘着し続けてるんだな
0094デフォルトの名無しさん2016/08/03(水) 07:22:04.65ID:PM+UcDni
インスタンス化したクラス以外からオブジェクトを利用するにはどうすればいいのですか?
雰囲気としてはこんな感じのことがしたいのですが・・・・・
https://dotnetfiddle.net/Widget/nEDDet
0095デフォルトの名無しさん2016/08/03(水) 08:39:40.08ID:Ls2YKypB
void Ccc(Aaa a) { Console.WriteLine(a.i); }
普通はこうする
0096デフォルトの名無しさん2016/08/03(水) 08:40:02.50ID:ZXeq6keH
>>94
public void Ccc(Aaa aaa) {
}
と、定義する
0097デフォルトの名無しさん2016/08/03(水) 11:17:14.95ID:uW5WiLiF
一応こっちでもいいよ。
public class Aaa{
  public int I{get;set;}
}
public class Bbb{
  public Aaa A{get; private set;}
  public Bbb(Aaa a) {
    A = a;
  }
  public void Ccc(){
    System.Console.WriteLine(A.I);
  }
}
class Hello
{
  public static void Main(){
    // Here your code !
    var aaa = new Aaa();
    var bbb = new Bbb(aaa);
    aaa.I = 1;
    bbb.Ccc();
    System.Console.ReadKey();
  }
}
0098デフォルトの名無しさん2016/08/03(水) 13:41:35.76ID:m0rhFcyF
Attaching an entity of type failed because another entity of the same type already has the same primary key value.

主キーが二つあるってエラーなのかなこれ
AがBクラスのリストを持っている構造でエラーが起きています
0099デフォルトの名無しさん2016/08/03(水) 13:48:06.96ID:v7zxzFcD
>>98
ソースが無いと、何をやろうとしてエラーになってるか分からないっす
0100デフォルトの名無しさん2016/08/03(水) 13:50:12.58ID:fyF/wT3P
value 値が重複
0101デフォルトの名無しさん2016/08/03(水) 14:16:18.58ID:8916Nt3B
キーのハッシュ値か何かが重複してるんじゃね
■ このスレッドは過去ログ倉庫に格納されています