アプリ版:「スタンプのみでお礼する」機能のリリースについて

VB.netでデータを読み込みました。
何もしないで読み込むと下記のような右の昇順になります。
2016/07/31,1306453
2016/07/30,1326235
2016/07/27,1434311
2016/07/28,1475040
2016/07/29,1740547

そこでデータセットに格納後
'昇順ソートを実施
DataGridView1.Sort(DataGridView1.Columns(0), System.ComponentModel.ListSortDirection.Ascending)
を処理後は下記のように表示されますが
2016/07/27,1434311
2016/07/28,1475040
2016/07/29,1740547
2016/07/30,1326235
2016/07/31,1306453


CSV出力を行うと最初の順で出力されます。
2016/07/31,1306453
2016/07/30,1326235
2016/07/27,1434311
2016/07/28,1475040
2016/07/29,1740547


どうしたらよいでしょうか?

A 回答 (5件)

DataGridViewとDataSetおよびDataTableは別物ですよ。


DataGridViewをソートしたからといって、DataTableの並び順が変わるわけではありません。

ループする対象は、DataTableではなく、DataGridViewでしょうね。

また、いくつかの方法論が出てきますが、ここら辺の説明のように、DataViewを利用するとか、ソートしたものを別なDataTableに落とし込むとかします。
https://social.msdn.microsoft.com/Forums/vstudio …
http://www.atmarkit.co.jp/fdotnet/dotnettips/363 …
http://jehupc.exblog.jp/9814663/
http://noqisofon.hatenablog.com/entry/20110328/1 …
http://futuremix.org/2009/03/datatable-select-sort

が、可能ならば、そもそも求めるソート順で読み込むという方が楽です。
    • good
    • 0
この回答へのお礼

http://d.hatena.ne.jp/N_bluesky_shilverend/20101 …

参考に調べてこちらを用いることでできました!!!!
ありがとうございます!!!

お礼日時:2016/05/31 16:43

>ソート自体はされており、出力する際にもとに戻ってしまいます><


じゃあソートされているところからどこで戻っているかデバックすればどうですか?
    • good
    • 0

VBはわからないんですよね



DataGridView1.Sort(DataGridView1.Columns(0), System.ComponentModel.ListSortDirection.Ascending)
↑やってます?

ソースに書いてないようですけど。
    • good
    • 0
この回答へのお礼

form1.DataGridView1というふうにform上にあります。
DataGridView1.dataset1.datatable1 とういう感じになっております。
ソート自体はされており、出力する際にもとに戻ってしまいます><

お礼日時:2016/05/31 15:00

・出力変数が入力変数と同じ


・出力変数に値が入っていない

かな
    • good
    • 0
この回答へのお礼

どういう対処法がありますでしょうか?
お願いします!

お礼日時:2016/05/31 14:49

どうやってCSV出力してるんですか?

    • good
    • 0
この回答へのお礼

If SaveFileDialog1.ShowDialog() = DialogResult.OK Then
Dim sw As System.IO.StreamWriter _
= New System.IO.StreamWriter(SaveFileDialog1.FileName,
False, System.Text.Encoding.Default)
For Each dr As DataSet1.DataTable1Row _
In DataSet1.DataTable1
strData = dr.hiduke.ToShortDateString() _
+ "," + dr.code
sw.WriteLine(strData)
Next

こんな感じです。

お礼日時:2016/05/31 14:44

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています