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


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

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



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/

855 名前:デフォルトの名無しさん mailto:sage [2016/08/08(月) 23:35:18.57 ID:RTJ7AFUW.net]
>>845
まじか
モーダレスとモーダルの違いだけだと思ってた
地味にかっこいい Showは止まらない
awaitに線が引かれる悲しい

856 名前:デフォルトの名無しさん mailto:sage [2016/08/08(月) 23:41:55.73 ID:robrIdsq.net]
>>846
メソッドにasync修飾子を付けないとawaitは使えないよ

857 名前:デフォルトの名無しさん mailto:sage [2016/08/08(月) 23:45:51.02 ID:RTJ7AFUW.net]
>>847
まさかそんなことが
一応それっぽくはなったけどもリアルタイム性が出てこない…

858 名前:デフォルトの名無しさん mailto:sage [2016/08/08(月) 23:52:39.12 ID:RTJ7AFUW.net]
とりあえず出来ました
ありがとう
ただ範囲外のも並列されている形になってしまった…

859 名前:デフォルトの名無しさん mailto:sage [2016/08/09(火) 00:06:14.07 ID:W0CalsaA.net]
どんな形なんだよ

860 名前:デフォルトの名無しさん mailto:sage [2016/08/09(火) 00:10:53.44 ID:e2AB2aAp.net]
>>850
本来この処理が終わってから別フォームCが立ち上がるのですが
プログレスバーが出てくるまでは良くそのままフォームCも立ち上がるようになりました…
そのためプログレスバーよりも前に出たり
あまり望ましくない完全なリアルタイムの処理に…

完全に処理を終わらせてから(上記ではAです)
Cのフォームを立ち上げたかったのですが…
処理順序としては

mainでCをShowDialogで呼ぶ

Cのコンストラクタで>>841の処理をする関数を呼ぶ

並列処理+残り処理数をプログレスバーで表示

終わり次第Cが立ち上がる

こうしたかったです

861 名前:デフォルトの名無しさん mailto:sage [2016/08/09(火) 00:26:02.73 ID:L97BkT5P.net]
https://social.msdn.microsoft.com/Forums/vstudio/ja-JP/2a723e51-2f6f-440b-811f-ccd629c6846f

これ見てると弱参照を使用するのが賢い気がするけど、
すぐGCで回収されちゃうだろうから弱参照の実装に手間かけても旨味ないのかな?

862 名前:デフォルトの名無しさん mailto:sage [2016/08/09(火) 00:51:25.88 ID:e2AB2aAp.net]
>>851
mainってのは一番はじめのフォームってことです
ログインフォームがあってそのフォームからイベントでCが呼ばれます

863 名前:デフォルトの名無しさん mailto:sage [2016/08/09(火) 01:02:46.51 ID:L89qxkLm.net]
>>851
こういう感じはどうかな?
public FormC()
{
 InitializeComponent();
 Task.Run(() =>
 {
  FormB frmB = new FormB();
  frmB.Show();
  //なんか処理
  frmB.Close();
 }).Wait();
}



864 名前:デフォルトの名無しさん mailto:sage [2016/08/09(火) 01:15:07.80 ID:e2AB2aAp.net]
>>854
わざわざありがとう
質問ばかりですまないがこの形式だと
//なんか処理ってところでAにあたる部分をさせるんだと思うんだけども
それだと並列はどこに出てくるのだろうか…
FormBに反映ができない気がして

865 名前:デフォルトの名無しさん [2016/08/09(火) 01:23:56.16 ID:mCEAgHsh.net]
というかTask.Runの中ってUIスレッドじゃなくない?
こういう場合はいいんだっけか

866 名前:デフォルトの名無しさん mailto:sage [2016/08/09(火) 01:24:18.12 ID:L89qxkLm.net]
>>855
>>842のラムダ式の部分と同じようなので良くない…かな?
(Task内でインスタンスを作ってるので BeginInvokeの必要がなくなるけど)
Bって、C起動までの進捗報告だけのフォームかと思ったけど、そうじゃないのかな…

867 名前:デフォルトの名無しさん mailto:sage [2016/08/09(火) 01:26:02.14 ID:L89qxkLm.net]
>>856
Task内で生まれたFormにとってはTaskの実行されてるスレッドが自分のUIスレッド
…だと思うw
一応、ProgressBar動作させて実験したし…

868 名前:デフォルトの名無しさん mailto:sage [2016/08/09(火) 01:35:37.24 ID:e2AB2aAp.net]
>>857
まさに言われてるように進捗報告だけのフォームです
Aが100回回るとしたらその残りをプログレスバーで表示させる的な感じです

プログラムを明日試してみたいと思います。
ただちょっとわけあってコンストラクタには入れにくいので別のとこに組み込んでみる…

俺の中では>>842では「whileが抜け出すまでフォームもやり続けるよ。ある値になったら抜けるよ」って意味で
2個のタスクのみが動くものだと思ってるのだけど合ってるのかな…?
そしてmainのタスク(while)が終わるまでそこで処理が止まる…ってなると思っていたけども、
どうやらその先に勝手に進んでいるみたいでtaskが三つ以上あるように見えて

869 名前:デフォルトの名無しさん mailto:sage [2016/08/09(火) 01:46:06.06 ID:L89qxkLm.net]
awaitは別スレッドでの処理を待っててくれるけど、元スレッドの処理は止めない。
ここ↓がわかりやすいと思う
非同期メソッド入門 (2) - async修飾子とawait演算子 - xin9le.net
blog.xin9le.net/entry/2012/07/19/002126

Task.Waitは非同期処理の完了まで元スレッドをブロックする
(今回はこっちの方がよさそうだけど、実はデッドロックの危険もある↓)
async/await 〜非同期なライブラリは楽じゃない〜 - 飽きっぽい人のブログ@qwerty2501
qwerty2501.hatenablog.com/entry/2014/04/24/235849

ちょうど今自分も非同期処理を勉強中だったんだ…
お役に立てば

870 名前:デフォルトの名無しさん [2016/08/09(火) 01:49:02.08 ID:eE ]
[ここ壊れてます]

871 名前:75C0zQ.net mailto: 質問です
XmlNodeReaderやStreamWriterはusingで囲めるためリソースを破棄することができますがXmlDocumentではできません

XmlDocumentのLoadメソッドでファイルを読みだした後、違うコンストラクタでStreamWriterを使い再度ファイルを呼び出そうとしたところ、そのファイルは別のプロセスで使われているとエラーを吐いてしまいます

この二つには関係があるのでしょうか?
また、XmlDocumentのリソースを破棄する方法はないのでしょうか?
[]
[ここ壊れてます]

872 名前:デフォルトの名無しさん [2016/08/09(火) 04:15:50.72 ID:mCEAgHsh.net]
>>861
StreamとかTextReaderを受け取るオーバーロードを使って、StreamとかReaderの方をusingで閉じれば
https://msdn.microsoft.com/ja-jp/library/system.xml.xmldocument.load(v=vs.110).aspx

873 名前:デフォルトの名無しさん mailto:sage [2016/08/09(火) 07:19:44.22 ID:HRQ9KN0P.net]
>>851
こうすれば?
public FormC() {
 this.Visible = false;
}
async void FormC_Load() { //CのLoadイベントハンドラ
 frmB.Show();
 await Task.Run(() => {
  //>>842と同じ
 });
 frmB.Close();
 this.Visible = true;
}
UIスレッドは常にシングルスレッドで絶対にブロックしないように作るのが
HTML/JS、Android、iOS、UWPなど今時の標準的なGUIプログラミングのスタイルなので、
夏休みに勉強でプログラミングしてるんなら時代遅れのWinFormsを使う場合でも慣れといた方がいいよ
ShowDialogやDoEventsは使わない



874 名前:デフォルトの名無しさん mailto:sage [2016/08/09(火) 07:47:57.18 ID:ToL5aceR.net]
Form1のListViewをそのままForm2のLstViewにも表示させたいのですがどうやればいいのでしょうか?

875 名前:デフォルトの名無しさん mailto:sage [2016/08/09(火) 07:56:39.38 ID:hbabIC8y.net]
>>860
>>863
お二人方長々とありがとう
頑張って作ってみるよ
お察しの通り夏休みで勉強中です

同期・非同期などもまだまだ学ぶことが多いなと実感中です
どれが止まってどれが動いてってのがなかなかわからないからコーディングしまくるしかないね

お二人方はFormCのロードでタスクrunさせることを言われてるけども
これはここでするのが必須ってことで良いんだよね
>>860で「 awaitは別スレッドでの処理を待っててくれるけど、元スレッドの処理は止めない。」「
Task.Waitは非同期処理の完了まで元スレッドをブロックする 」と
言っているのがこのタイミングでのRunに当たるのかなと読み取った
呼び出し先でないと少しタイミングの合わないものが存在するので
そこをどうにか出来ないかとあれこれやってみます

876 名前:デフォルトの名無しさん mailto:sage [2016/08/09(火) 09:26:34.60 ID:eypRXuHG.net]
タスクじゃなくてスレッドじゃね?
ただうまくコード書けんかったわ俺には

877 名前:デフォルトの名無しさん mailto:sage [2016/08/09(火) 10:48:51.25 ID:j/Q51pNB.net]
>>863
お二方の試させていただいたけど
やはり処理待ちをしてくれない…何故なんだろ

878 名前:デフォルトの名無しさん mailto:sage [2016/08/09(火) 11:39:23.68 ID:BU0WPlE5.net]
loadでタイマーイベント起こして、
そのイベントで待ち処理をしてみては。

879 名前:デフォルトの名無しさん mailto:sage [2016/08/09(火) 11:39:51.75 ID:bJX8y2k6.net]
>>867
後続(にするつもり)の処理はどこに書いてるのよ?

880 名前:デフォルトの名無しさん mailto:sage [2016/08/09(火) 12:22:19.05 ID:3FV3+BA1.net]
LINQでズバリ↓をやりたいのですが
うまく動きません

[C#]DataGridViewから,指定した条件に合うデータをLINQで取得する
nanoappli.com/blog/archives/2331


DataGridViewRow に型変換できねーぞ
キャストしろよゴルァ

って感じのメッセージが出るんですが、あのソースは正しいのでしょうか。

881 名前:デフォルトの名無しさん mailto:sage [2016/08/09(火) 12:44:32.93 ID:To3JSt2U.net]
ToString
Toint32

882 名前:デフォルトの名無しさん mailto:sage [2016/08/09(火) 13:05:24.59 ID:LeDvruj5.net]
>>870 こうかな?
IEnumerable<DataGridViewRow> rowList = null;
rowList =
 dgv.Rows.Cast<DataGridViewRow>()
 .Where(row =>
  row.IsNewRow == false &&
  row.Cells["ColKey"].Value.ToString() == keyValue);

883 名前:デフォルトの名無しさん mailto:sage [2016/08/09(火) 13:41:41.36 ID:Lgzk2fEI.net]
>>867
非同期はタイミング次第で、うまく行ったり行かなかったりする

処理A、処理B と書いても、
Aではキューに入れるだけで、Bが先に処理されたり、

逆に、Aでキューに入れられたものが、Bより先に、すぐに消化されてしまったり



884 名前:デフォルトの名無しさん mailto:sage [2016/08/09(火) 16:41:52.99 ID:r97uYqz/.net]
WinFormで、フォームを常にアクティブにしておく方法ってありますでしょうか?
一時的に他のソフトを立ち上げても、WinFormが常にアクティブの状態(キー入力を受け付ける状態)にしたいです。
もしくは、WinFormがアクティブで無くてもキー入力は受け付ける様にしたいです。
よろしくお願いします。

885 名前:デフォルトの名無しさん mailto:sage [2016/08/09(火) 16:49:23.12 ID:lpBcjy/9.net]
>>874
言ってる事が矛盾してるような気がするけど、それはともかく
ホットキーで検索してみた?

886 名前:デフォルトの名無しさん mailto:sage [2016/08/09(火) 16:54:41.34 ID:NuLrqlAG.net]
>>874
キー入力はフォーカスがあたっていないと受け付けない
だからフォームをTopMost=trueにしてキー入力を受けるコントロールにFocus()するとか工夫するしかないんじゃないかな
MouseEnterでFocus()するとか
>>875
使うキーが決まっているのならそっちの方が確実だろうな

887 名前:デフォルトの名無しさん [2016/08/09(火) 16:55:30.72 ID:CkRClEjI.net]
キーロガーの機能ですね。できますよ。

888 名前:デフォルトの名無しさん mailto:sage [2016/08/09(火) 17:17:44.81 ID:r97uYqz/.net]
>>875
グローバルフックとかは試してみたけどうまくいかなくて、ホットキーは初耳でした。
勉強してみます。

>>876
TopMostではうまく行きませんでした。
常に最前列に表示はされるのですが、アクティブなフォームが変わるとフォーカスが消えてしまって入力出来ませんでした。
使うキーは決まっているので、もう少し勉強してみます。

889 名前:デフォルトの名無しさん mailto:sage [2016/08/09(火) 17:21:06.54 ID:NuLrqlAG.net]
>>878
TopMost=trueだけだとフォーカスはあたらないしフォームにFocusしてもキー入力は受けられない
TopMost=trueするのは常に表示させるため。コントロールにFocusしないと

890 名前:デフォルトの名無しさん mailto:sage [2016/08/09(火) 17:35:43.36 ID:r97uYqz/.net]
何度もすいません。
>>875
ホットキーってキー1つでも出来ますでしょうか?
サンプルを見るとCtrlやAltと組み合わせた場合ばかりで・・・。
RegisterHotKey(this.Handle, HOTKEY_ID, (int)Keys.Enter);
みたいに、キー1つでも出来ますでしょうか?

>>877
GetAsyncKeyStateは簡単そうですが、使う時ってタイマーで常に回していないとダメでしょうか?

>>879
コントロールにフォーカスが無いとキー入力をしても意味が無いのはわかります。
一度アクティブでは無くなっても、コントロールにFocusする方法ってありますでしょうか?

891 名前:デフォルトの名無しさん mailto:sage [2016/08/09(火) 17:37:44.38 ID:BU0WPlE5.net]
自分アプリケーションだけで終わる話なので、
キーダウン/キーアップをメインフォームに通知するだけで良いと思います。
下手にキー操作を全部取るとセキュリティ的にそのアプリは使いたくなくなります。

892 名前:デフォルトの名無しさん mailto:sage [2016/08/09(火) 17:43:37.54 ID:1y7DBS0u.net]
目的がよーわからんけどLLフックも視野に入れたほうが・・・

893 名前:デフォルトの名無しさん mailto:sage [2016/08/09(火) 17:46:10.93 ID:AJ2CLbue.net]
>>880
2つ目と3つ目は似たようなことだと思うよ
アクティブでなくなると反応を受けなくなるんだからタイマーなどで自発的に入力情報などを取りに行くしかない
常にアクティブにしてフォーカスが来るように考えたほうがいいんじゃない?



894 名前:デフォルトの名無しさん [2016/08/09(火) 17:48:53.93 ID:mCEAgHsh.net]
グローバルキーボードフックが上手くいかなかった理由を解消した方が早いだろ
馬鹿か

895 名前:デフォルトの名無しさん mailto:sage [2016/08/09(火) 18:50:53.84 ID:cjmyDJ6c.net]
リッチテキストボックスに+=でコメント追加するのに、上から追加していく方法ありますか?

896 名前:デフォルトの名無しさん [2016/08/09(火) 19:09:34.62 ID:UK97IaF1.net]
そんなセマンティクス断固無視みたいな操作できるわけねーだろ

897 名前:デフォルトの名無しさん mailto:sage [2016/08/09(火) 19:38:47.93 ID:snE3xX4a.net]
会社でvar禁止令がでそうなんだけど、その理由が可視性が悪いからとかお前らエディタ使ってるのかよと・・・

898 名前:デフォルトの名無しさん [2016/08/09(火) 19:44:17.53 ID:CkRClEjI.net]
書き方によってはバグが隠れてソースからは発見できないだろ、この初心者が。
それともおまえはvarがあるたびにいちいちマウスカーソル移動させて型を確認するのか?

899 名前:デフォルトの名無しさん mailto:sage [2016/08/09(火) 19:59:42.55 ID:rTlnm3J6.net]
varがだめならdynamicがあるじゃない

900 名前:デフォルトの名無しさん mailto:sage [2016/08/09(火) 20:05:48.72 ID:A+GvPbuv.net]
>>888
型間違っていたら、直下でオブジェクト使うところでエラーになるだろうに

901 名前:デフォルトの名無しさん mailto:sage [2016/08/09(火) 20:07:28.21 ID:JS0TrNVx.net]
varが駄目ならTがあるじゃない

902 名前:デフォルトの名無しさん [2016/08/09(火) 20:13:09.44 ID:CkRClEjI.net]
>>890
ならないパターンがいくらでもあるだろ。違うクラスで同じメソッド名なんて腐るほどある。
後ろで.ToString()使って終わりなら手抜きテストなら簡単にパスしてしまう。

何が最悪ってvarやLINQ使いたがる奴ほどテストを端折る。コードを端折るような奴だからな。>>887 たとえばこいつ。禁止理由はおまえだよw

903 名前:デフォルトの名無しさん mailto:sage [2016/08/09(火) 20:13:28.75 ID:h+7CEzP0.net]
抗議しろよ



904 名前:デフォルトの名無しさん mailto:sage [2016/08/09(火) 20:19:30.96 ID:s9poePNg.net]
>>892
よお老害

905 名前:デフォルトの名無しさん [2016/08/09(火) 20:22:06.73 ID:CkRClEjI.net]
>>894
市ね、糞カギ。

906 名前:デフォルトの名無しさん mailto:sage [2016/08/09(火) 20:22:42.86 ID:mk3kxjVQ.net]
まーたlinq不要おじさんが暴れてるのか

907 名前:デフォルトの名無しさん mailto:sage [2016/08/09(火) 20:26:10.67 ID:AJ2CLbue.net]
質問に関係ない愚痴とか言い争いは他でやれよ

908 名前:デフォルトの名無しさん mailto:sage [2016/08/09(火) 20:26:11.26 ID:h+7CEzP0.net]
ラムダなんていらねー
linqなんていらねー
浮動小数点数なんていらねー

909 名前:デフォルトの名無しさん mailto:sage [2016/08/09(火) 20:26:38.67 ID:h+7CEzP0.net]
はい、誘導w!
echo.2ch.net/test/read.cgi/tech/1469538912/

910 名前:デフォルトの名無しさん mailto:sage [2016/08/09(火) 20:30:09.33 ID:Nsm2mWMo.net]
>>869
関数を呼び出してその中で書いてます
クラスファイルの中です

>>873
キューとかそのようなものは消化してないですが内部的にあるんですかね
呼び出しを行った関数自体が処理ストップしてくれず

とりあえずアクションなにもできないようにして対処しました

911 名前:デフォルトの名無しさん mailto:sage [2016/08/09(火) 20:53:14.65 ID:HfoI5GBD.net]
Taskで別のスレッドを動かすとき、Thread.Abort()の様に停止させる方法はありませんか?
無限ループを使ってテストしているのですが、キャンセルをかけても処理がずっと続いてる様子です。

912 名前:デフォルトの名無しさん mailto:sage [2016/08/09(火) 21:12:22.02 ID:BU0WPlE5.net]
var htmlString = stringBuffer.ToString();
var htmlObjects = HtmlObjectParser.Parse(htmlString);
dataSender.Send(htmlObjects);

htmlStringはToStringなんだからString型だが、
htmlObjectsは一体何か分からん。←これが問題か否か

dataSender.Sendの実装が、ISendableを実装している引数を取るのなら、
ISendableを実装していないオブジェクトを返したらエラーになるのでその時点でわかる(動的に)。

IPostable htmlObjects = HtmlObjectParser.Parse(〜)
なら、静的にエラーになるので早い段階で分かる。

913 名前:デフォルトの名無しさん mailto:sage [2016/08/09(火) 21:17:07.89 ID:A+GvPbuv.net]
>>901
c#ではCancellationTokenSourceってのが用意されていて
コレを使ってタスクのキャンセルを別のタスクに通知する
詳細は面倒なのでググッてね



914 名前:デフォルトの名無しさん mailto:sage [2016/08/09(火) 21:34:58.46 ID:HfoI5GBD.net]
>>903
その仕組みを利用してキャンセルをかけても、タスクマネージャを見る限りループが続いている様子です

915 名前:デフォルトの名無しさん mailto:sage [2016/08/09(火) 21:40:22.90 ID:snE3xX4a.net]
>>904
Cancelメソッドだけで停止させようとしてない?
無限ループをIsCancellationRequested見て抜けるようにすれば処理が残ることは無いと思うけど

916 名前:デフォルトの名無しさん mailto:sage [2016/08/09(火) 21:42:42.45 ID:3V8v+StG.net]
>>904
つ ThrowIfCancellationRequested

917 名前:デフォルトの名無しさん mailto:sage [2016/08/09(火) 22:30:34.35 ID:Ulr7R0RZ.net]
>>901が言ってるのは呼び出し先が(バグが原因で)デッドロックしちゃうような場合に
どうするのって話じゃないの?

実際困るんだよねこれ。

918 名前:デフォルトの名無しさん mailto:sage [2016/08/09(火) 22:44:45.15 ID:HfoI5GBD.net]
>>905-906
それらも試してるのですが、どうも上手く行かないようで

>>907
まさにその通りです

919 名前:デフォルトの名無しさん [2016/08/09(火) 22:58:07.09 ID:mCEAgHsh.net]
TaskをやめてThreadにする
それも嫌ならProcessにする
まともに対処可能なものに対してAbortやTerminateをすべきではないが、まともじゃない相手に律儀に対応しても仕方がないので、使えるものを使え

UWPならMicrosoftを罵倒しながら自棄酒をかっ食らう

920 名前:デフォルトの名無しさん mailto:sage [2016/08/09(火) 23:12:37.02 ID:nVoDRxsS.net]
そもそもタスクとスレッドの使い分けができてない俺

921 名前:デフォルトの名無しさん [2016/08/09(火) 23:27:59.36 ID:xX1eLGuF.net]
エセ左翼の目的は、わざと突っ込みどころが多い主張をすることで自分たちへ注意を向けさせ、
カルトへ向かう非難の矛先を逸らすこと。
国益に反することを言ったり、主張が食い違うもの同士の対立を煽ろうとするので放置し難いが、
主義思想についての洗脳を受けているわけではなく、フリをしているだけなので、
言い負かされてもダメージを負った様子もなく、論点をすり替えられるかスルーされる。
まともに相手をしてはならない。

922 名前:デフォルトの名無しさん mailto:sage [2016/08/10(水) 00:18:43.16 ID:tzaz0eYO.net]
変なの来たなw

923 名前:デフォルトの名無しさん mailto:sage [2016/08/10(水) 00:44:52.26 ID:0FrSD1Xj.net]
>>907
それだけならInterruptで穏便に潰せばいいんじゃね



924 名前:デフォルトの名無しさん mailto:sage [2016/08/11(木) 16:16:31.49 ID:uO/Tl1Ff.net]
型指定されたデータセットについての質問です。
新しい項目の追加でDataSetを追加し、DataTable1.xsdにてDataTable1を作成しました。
コンポーネントからDataSet11をD&Dで、型指定されたデータセットのプロジェクト名.DataSet1を選択し追加しました。
DataGridViewのDataMenberにはDataTable1を設定し、DataSourceにはdataSet11を設定しました。
Form1_Loadイベントでxmlファイルを読み込むコードを書いたのですが、読み込んでくれません。
ちなみに、型指定のないデータセットだと読み込んでくれます。
エラー文は以下の通りです。
オブジェクト参照がオブジェクトインスタンスに設定されてません。
コードは以下の通りです。

private void Form1_Load(Object sender,EventArgs e)
{
dataSet11.ReadXml("test.xml");
}


お分かりになる方、どこがどう間違っているのか教えてください。

925 名前:デフォルトの名無しさん mailto:sage [2016/08/11(木) 17:20:06.87 ID:rmou6ft4.net]
>>914
xmlは規定の構造の物なの?
detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1039714435

926 名前:デフォルトの名無しさん mailto:sage [2016/08/11(木) 17:34:29.83 ID:uO/Tl1Ff.net]
>>915
DataGridViewのDataSourceに型指定されてないDataSetを指定し、DataMenberには型指定されてないDataSetのTablesで作成したTable1を指定てます。
あとは、デバッグで起動し、DataGridViewに必要なデータを入力してWiteXmi("test.Xml")で保存したファイルを使用してるので大丈夫ではないでしょうか?

927 名前:デフォルトの名無しさん mailto:sage [2016/08/11(木) 17:42:10.36 ID:uO/Tl1Ff.net]
ブレークポイントで調べたところ、dataSet11.ReadXml("test.xml");の下に書いてるコードがエラーみたいです。
型指定してない場合はこのコードで通るのですが、なにが間違ってるのでしょうか?


private void Form1_Load(Object sender,EventArgs e)
{
 dataSet11.ReadXml("test.xml");
//レコードの上書き
 dataSet11.Tables["Table1"].AcceptChanges();
}

928 名前:デフォルトの名無しさん mailto:sage [2016/08/11(木) 17:46:14.15 ID:kg1OJGvs.net]
>オブジェクト参照がオブジェクトインスタンスに設定されてません。
これは出るのは該当オブジェクトがnullの時だろ
>>917
ブレークした時点でdataSet11やdataSet11.Tables["Table1"]がnullになってないか?

929 名前:デフォルトの名無しさん mailto:sage [2016/08/11(木) 17:48:01.13 ID:uO/Tl1Ff.net]
Table1ではなくdataTable1にしないといけなかったみたいです。
お騒がせしました。

930 名前:デフォルトの名無しさん mailto:sage [2016/08/11(木) 21:33:56.03 ID:stbfoTV9.net]
excelがある時代にデータベースなんて勉強する意味あるんですか?

931 名前:デフォルトの名無しさん mailto:sage [2016/08/11(木) 21:39:57.74 ID:7N4x7lnM.net]
Javaがある時代にC#なんて勉強する意味があるんですか?

932 名前:デフォルトの名無しさん mailto:sage [2016/08/11(木) 21:45:58.55 ID:txYrujZA.net]
C#がある時代にJavaなn(ryだろ

933 名前:デフォルトの名無しさん mailto:sage [2016/08/11(木) 21:47:00.15 ID:stbfoTV9.net]
大企業でもないのにデータベース使う意味って?
顧客のデータが100万以上なんて考えられないし
excelでよくね?



934 名前:デフォルトの名無しさん mailto:sage [2016/08/11(木) 21:49:30.10 ID:kg1OJGvs.net]
またスレタイとテンプレ読めないいつもの人か

935 名前:デフォルトの名無しさん [2016/08/11(木) 21:52:29.73 ID:stbfoTV9.net]
C#にもデータベース関連の機能あるけど本当に必要なのかな?
excelでいいじゃん、無理して使わなくてもいいよね?

936 名前:デフォルトの名無しさん mailto:sage [2016/08/11(木) 21:52:59.82 ID:stbfoTV9.net]
データが多くてファイルが重くなるなら分ければよくね?
俺の考え間違ってたら教えて

937 名前:デフォルトの名無しさん mailto:sage [2016/08/11(木) 21:53:43.34 ID:xgILIYSY.net]
今のExcelって中身XMLなんだよな
OpenXML使ってExcelファイルの読み書きやってみたけど、MSDNの例が酷すぎてコピペした人はOpenXML=遅いのイメージ染み付くんじゃないの

938 名前:デフォルトの名無しさん mailto:sage [2016/08/11(木) 21:55:29.44 ID:stbfoTV9.net]
反論がないということは僕が正しいということですね
excelみたいな便利なものがあるのにデータベースなんてw

939 名前:デフォルトの名無しさん mailto:sage [2016/08/11(木) 21:57:17.93 ID:UACcoZpk.net]
エクセルとDBがバッティングしてるって発想が分からないw

940 名前:デフォルトの名無しさん mailto:sage [2016/08/11(木) 21:57:50.06 ID:7N4x7lnM.net]
XMLはどうやっても遅いでしょw

941 名前:デフォルトの名無しさん mailto:sage [2016/08/11(木) 22:00:37.79 ID:7N4x7lnM.net]
入門者向けのExcelの使い方例 → 住所録
入門者向けのAccessの使い方例 → 住所録。

実践向けのExcelの使い方例 → 家計簿
実践向けのAccessの使い方例 → 家計簿

いくら考えてもバッティングしてしまう。

942 名前:デフォルトの名無しさん mailto:sage [2016/08/11(木) 22:01:58.13 ID:stbfoTV9.net]
例えば書店とか図書館に本探す端末とかあるじゃん?
本なんて高々20〜100万冊じゃん?
excelでいいじゃん
データベースとか組む必要ある???
知らないけどさ

943 名前:デフォルトの名無しさん mailto:sage [2016/08/11(木) 22:02:30.48 ID:xqVew+jo.net]
EXCELはただの表計算ソフトだよ
それとデータベースを比較するってどういうことなのw



944 名前:デフォルトの名無しさん [2016/08/11(木) 22:05:58.45 ID:stbfoTV9.net]
>>933
うん???
excelさえあれば会社のデータ全部管理できると思ってるんだ俺
間違ってる???

945 名前:デフォルトの名無しさん mailto:sage [2016/08/11(木) 22:07:26.25 ID:diubw1vg.net]
すればよろし

946 名前:デフォルトの名無しさん mailto:sage [2016/08/11(木) 22:22:16.64 ID:kQnh3qSC.net]
まあVBAとかマクロ使えば一気に管理できるし強ち間違いではない

947 名前:デフォルトの名無しさん [2016/08/11(木) 22:28:55.12 ID:stbfoTV9.net]
>>936
そうでしょ?
てことはデータベースなんて必要なくね?

948 名前:デフォルトの名無しさん mailto:sage [2016/08/11(木) 22:29:14.48 ID:c6R4+ha0.net]
PC一台ローカルに処理するだけなら何でも良いんで無いの

949 名前:デフォルトの名無しさん mailto:sage [2016/08/11(木) 22:33:31.23 ID:7N4x7lnM.net]
>>937
EXCELでトランザクション張る方法教えてください。

950 名前:デフォルトの名無しさん mailto:sage [2016/08/11(木) 23:00:15.64 ID:7xsSvVNJ.net]
>>937
エクセルは数あるデータベースの
ひとつです。
はい論破

951 名前:デフォルトの名無しさん mailto:sage [2016/08/11(木) 23:15:58.70 ID:LPAM5Yv4.net]
間違ってるよ
数年前までは行数65000件のカベがあったくらいだし
そのくらいの件数になると遅さとか管理しにくさが目につくようになる

まあ手のこんだ事しなければ困らないか

952 名前:デフォルトの名無しさん mailto:sage [2016/08/11(木) 23:18:52.67 ID:bULuivxC.net]
>>937
うむそうだ
だがな トランザクション処理とかできないんじゃないかな

953 名前:デフォルトの名無しさん mailto:sage [2016/08/11(木) 23:24:02.95 ID:DuaoGpk9.net]
レコードセットでトランザクション貼れる。
データベースとして使えて、アプリケーションとして使えて、こんな革命的なアプリケーションもう出ないよ



954 名前:デフォルトの名無しさん mailto:sage [2016/08/11(木) 23:24:59.06 ID:bSBMy056.net]
>>934
会社の規模によるでしょ
あと複数人がデータに同時アクセスして更新していくようなのが必要な会社は
エクセルじゃなくて本格的なデータベースじゃないと無理じゃないの?

955 名前:デフォルトの名無しさん mailto:sage [2016/08/11(木) 23:35:51.04 ID:1YfJrBdd.net]
エクセルで全部できる人はここに来る必要ないじゃん
バイナリデータ分けてDataGridに読み込んで更にそれを書換えて整理するってやったことあるけど
エクセルとVBAでできるって言われても面倒だからやりたくねーよ

956 名前:デフォルトの名無しさん mailto:sage [2016/08/11(木) 23:49:32.13 ID:bSBMy056.net]
俺もエクセルをデータベース的に使ってるから気持ちはわかる

テーブルワークシートを作ってクエリワークシートで加工して帳票ワークシートに出力
スタンドアロンのシステムでいいならこんな感じで手軽に簡易システムを作れるのが便利

957 名前:デフォルトの名無しさん mailto:sage [2016/08/12(金) 00:22:58.03 ID:3tV2hGaV.net]
自分で簡単なプログラムを作る分にはいいけど、人の作ったのはメンテしたくないねぇ

958 名前:デフォルトの名無しさん mailto:sage [2016/08/12(金) 00:29:57.00 ID:QHYUuRYX.net]
まあネタにしてもエクセルでDBなんてアホかとしか思えんけど、
あるあるネタの定番のエクセルでドキュメント作っちゃうオッサンよりマシか

昔1-2-3にはアプローチってRDBがタダでついて来たけど、エクセルにはアクセスバンドルされてないんだよなそういえば。

959 名前:デフォルトの名無しさん mailto:sage [2016/08/12(金) 00:31:43.59 ID:N0C4ntqt.net]
アクセス買ってあげろよ
悪いアプリじゃないよ
帳票とかって本来どう作るべきなの?
いまの会社しか知らなくて分からないや
って人には絶対いい

960 名前:デフォルトの名無しさん mailto:sage [2016/08/12(金) 10:09:23.33 ID:Rc8EoSBg.net]
年金DBが不正データだらけなのは、ID:stbfoTV9 みたいのが開発してたからです。

961 名前:デフォルトの名無しさん [2016/08/12(金) 10:15:52.07 ID:xe+iEvm0.net]
テストしてねーだろうからなw

962 名前:デフォルトの名無しさん mailto:sage [2016/08/12(金) 10:23:32.55 ID:Rc8EoSBg.net]
Excelは宙ぶらりんのデータが許容されますが、RDBMSでは基本制約掛けますので存在しません。
Excel信者はそれが分からんのです。たがらDBでもリレーション切っちゃうんです。正規化めんどくさい!!って。
表計算ソフトと思えば問題ない!! Excelならそれが普通だ!!ってね。

963 名前:デフォルトの名無しさん mailto:sage [2016/08/12(金) 11:40:53.36 ID:3tV2hGaV.net]
今どきdb側で制約やる?

データの入出力とチェックはアプリケーション側でやって、dbは器として使えよ。

リレーション図作るためにプライマリーキーぐらいは定義するかな



964 名前:デフォルトの名無しさん mailto:sage [2016/08/12(金) 11:41:34.90 ID:YjCrXifk.net]
C#スレだろクソが。

965 名前:デフォルトの名無しさん mailto:sage [2016/08/12(金) 11:47:42.76 ID:6T3FQcLQ.net]
カスケードで削除とか普通だろ

966 名前:デフォルトの名無しさん mailto:sage [2016/08/12(金) 11:52:24.23 ID:Rc8EoSBg.net]
Excelファイルでよく見る変なデータ。

名古屋県

967 名前:デフォルトの名無しさん [2016/08/12(金) 12:06:01.82 ID:h1q2KTcd.net]
>>955
ジャッポSIerは論理削除しか知らないからカスケードとか不可能ですよw
ご存じないのですかww?

968 名前:デフォルトの名無しさん [2016/08/12(金) 12:46:23.07 ID:lkc5gPjF.net]
少なくともエクセル使えばエラーはない事は確かじゃん
自分で作ったデータベースプログラムだとどこにエラーあるか分からんでしょ

969 名前:デフォルトの名無しさん mailto:sage [2016/08/12(金) 13:00:23.93 ID:k2FvZtud.net]
>>958
TPOに合わせて使い分けるってしないってことね。スレも含めて

970 名前:デフォルトの名無しさん mailto:sage [2016/08/12(金) 13:04:52.18 ID:E1g4I1ik.net]
違うと思うけどなあw
わざとやってるのかもしれないけど、言い訳がVBerと同じだよねw
便利な物を便利に使って何が悪い、ってかw

971 名前:デフォルトの名無しさん [2016/08/12(金) 13:23:43.04 ID:PV0xO3Fw.net]
>>958
存在がエラーというオチですな
お後がよろしいところで




972 名前:デフォルトの名無しさん mailto:sage [2016/08/12(金) 15:27:39.20 ID:lkc5gPjF.net]
数万超えたら重い??
それならカナ順でファイル複数作ればいいだけ
わざわざデータベース作る必要ないね

目的のファイル見つけるまで0.001秒
そっから目的セル見つけるまで0.01秒

最強じゃん

973 名前:デフォルトの名無しさん [2016/08/12(金) 15:32:15.67 ID:lkc5gPjF.net]
データベースなんてあんなSQLみたいな難しいの勉強しなくていいよな
エクセルあるもん、Ctrl+Fで検索できるじゃん、
一々言語書く必要あるの?wwww



974 名前:デフォルトの名無しさん mailto:sage [2016/08/12(金) 15:34:06.81 ID:lkc5gPjF.net]
だからさー国レベルだと独自の管理システム使えばいいじゃん
企業レベルでデータベースなんていらないでしょ
異論ある?本のタイトルを調べたい、ならエクセルでいいじゃんwwwwwwww
データベースwwwwwwwwwwwwwwwwwwwwwwwww

975 名前:デフォルトの名無しさん mailto:sage [2016/08/12(金) 15:34:54.38 ID:lkc5gPjF.net]
だってあんなの無理だよな
難しすぎるもん
便利なツールがあるのにデータベースを勉強ってwwww

976 名前:デフォルトの名無しさん mailto:sage [2016/08/12(金) 15:38:20.13 ID:lkc5gPjF.net]
だいたいトランザクションなんて必要あるの?
目的のデータを見つけるだけで大がかりな処理必要か?
データの管理なんてバックアップとるだけの話で、手を施す事って何もないでしょ
間違ってる???

977 名前:デフォルトの名無しさん [2016/08/12(金) 15:40:08.84 ID:lkc5gPjF.net]
>>944
それって単にエクセルの設定でなんとかならなかった?
同じ個所いじらないなら、別々に編集できたと思うけど

978 名前:デフォルトの名無しさん mailto:sage [2016/08/12(金) 16:29:22.52 ID:V2s4z4io.net]
ふらっと C#,C♯,C#(議論用) [無断転載禁止]©2ch.net
echo.2ch.net/test/read.cgi/tech/1469538912/

979 名前:デフォルトの名無しさん mailto:sage [2016/08/12(金) 16:39:21.36 ID:6T3FQcLQ.net]
トランザクションが何物であるか理解していないと書けないレスするとは
釣り師としてはイマイチだね

980 名前:デフォルトの名無しさん mailto:sage [2016/08/12(金) 18:08:36.19 ID:YjCrXifk.net]
いつもの奴は粛々とBAN・NGワードで対処すりゃいいんだよ。
スレ違いに付き合ってる奴らも同罪。

981 名前:デフォルトの名無しさん mailto:sage [2016/08/12(金) 18:23:51.82 ID:k2FvZtud.net]
スレ違いに構う奴が多すぎ
C#に関係ない話題で盛り上がりたいのならニュース系とか雑談とか他の板があるだろ
こんな過疎板でたむろってなくてもいいんだよ

982 名前:デフォルトの名無しさん mailto:sage [2016/08/12(金) 18:43:27.26 ID:3tV2hGaV.net]
そうだね、スレ違いだからc#でexcelいじろうよ。

983 名前:デフォルトの名無しさん mailto:sage [2016/08/12(金) 19:03:34.21 ID:V2s4z4io.net]
C# 7 はよ



984 名前:デフォルトの名無しさん mailto:sage [2016/08/12(金) 19:22:05.44 ID:PQei7dBP.net]
C#って女の人が使う言語ってマジ?

985 名前:デフォルトの名無しさん mailto:sage [2016/08/12(金) 20:46:54.56 ID:PQei7dBP.net]
書店で買った本でC#覚えたけど物足りない

986 名前:デフォルトの名無しさん mailto:sage [2016/08/12(金) 20:52:34.79 ID:l3pVsVAD.net]
>>975
何がどう物足りないの?

987 名前:デフォルトの名無しさん mailto:sage [2016/08/12(金) 21:07:44.00 ID:S337aRPj.net]
言語なんだから使わずに「覚えて」もつまらんわな

988 名前:デフォルトの名無しさん [2016/08/12(金) 21:08:14.96 ID:PQei7dBP.net]
>>976
webサイト取得するプログラム作りたいからね
検索した結果のページを取得したい

989 名前:デフォルトの名無しさん [2016/08/12(金) 21:25:45.17 ID:PQei7dBP.net]
方法は?

990 名前:デフォルトの名無しさん mailto:sage [2016/08/12(金) 21:26:22.82 ID:V2s4z4io.net]
次スレの季節

991 名前:デフォルトの名無しさん mailto:sage [2016/08/12(金) 21:28:35.55 ID:S337aRPj.net]
>>980
よろしく頼む

992 名前:デフォルトの名無しさん mailto:sage [2016/08/12(金) 21:29:46.24 ID:V2s4z4io.net]
this.CreateNextThread();

ふらっと C#,C♯,C#(初心者用) Part124
echo.2ch.net/test/read.cgi/tech/1471004887/

993 名前:デフォルトの名無しさん mailto:sage [2016/08/12(金) 21:47:50.85 ID:S337aRPj.net]
>>982
スレたて乙
ワッチョイありにしたのか。
これでバカな書き込みは減るだろうな



994 名前:デフォルトの名無しさん mailto:sage [2016/08/12(金) 21:49:30.82 ID:XZxPWxwO.net]
>>982
ワッチョイ有りは評価するわ

995 名前:デフォルトの名無しさん [2016/08/12(金) 21:58:16.07 ID:PQei7dBP.net]
ワッチョイ入れたかーw
自治厨は同じ奴だろうねw

996 名前:デフォルトの名無しさん [2016/08/12(金) 22:01:03.83 ID:PQei7dBP.net]
ワッチョイ入れたら質問者減らないか

997 名前:H?? []
[ここ壊れてます]

998 名前:デフォルトの名無しさん mailto:sage [2016/08/12(金) 22:02:51.75 ID:V2s4z4io.net]
>>983-984
あんまり効果ないかも……と思ってたけれど、既に効果出てるみたいだね

999 名前:デフォルトの名無しさん mailto:sage [2016/08/12(金) 22:02:55.83 ID:S337aRPj.net]
次は相談室が荒らされて相談室もワッチョイ化するだろうな

1000 名前:デフォルトの名無しさん [2016/08/12(金) 22:04:56.97 ID:PQei7dBP.net]
スレが活性化しないな

1001 名前:デフォルトの名無しさん mailto:sage [2016/08/12(金) 22:05:06.94 ID:Ojh78pHB.net]
>>988
ちょっと前に荒らされたぞ

1002 名前:デフォルトの名無しさん [2016/08/12(金) 22:23:43.16 ID:PQei7dBP.net]
スレが活性化しないな

1003 名前:デフォルトの名無しさん [2016/08/12(金) 22:32:50.60 ID:PQei7dBP.net]
活性化しないな



1004 名前:デフォルトの名無しさん [2016/08/12(金) 22:34:55.70 ID:PQei7dBP.net]
活性化しないな

1005 名前:デフォルトの名無しさん [2016/08/12(金) 22:35:42.90 ID:PQei7dBP.net]
あーあ

1006 名前:デフォルトの名無しさん mailto:sage [2016/08/12(金) 22:36:26.31 ID:S337aRPj.net]
>>987
すごくわかりやすいのが炙り出されたな

1007 名前:デフォルトの名無しさん [2016/08/12(金) 22:36:32.76 ID:PQei7dBP.net]
つまんね

1008 名前:デフォルトの名無しさん [2016/08/12(金) 22:36:44.85 ID:PQei7dBP.net]
つまんね

1009 名前:デフォルトの名無しさん [2016/08/12(金) 22:37:52.86 ID:PQei7dBP.net]
つまんね

1010 名前:デフォルトの名無しさん [2016/08/12(金) 22:39:14.42 ID:PQei7dBP.net]
つまんね

1011 名前:デフォルトの名無しさん [2016/08/12(金) 22:40:38.44 ID:PQei7dBP.net]
つまんね

1012 名前:過去ログ ★ [[過去ログ]]
■ このスレッドは過去ログ倉庫に格納されています






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

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

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