質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
87.20%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

受付中

datareaderの取得順

landy77
landy77

総合スコア0

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

1回答

0評価

0クリップ

2593閲覧

投稿2015/02/05 13:13

以前PHPで作成したWEBシステムをC#へ移しています。
よくある不動産会社の社内でのデータ管理用プログラムでPHPで作成してあったのですが、今回FAXの送信をする事になり、だんだん細かい動作をする必要が出てきたのでこの際にWindowsフォームへ移すのを了解して頂きました。

で、一覧画面がありまして、それをWinFormへ移した際にちょっと私では解決出来ない問題が起こっています・・・

lang

select * from tbl_bukken where enable = 1 AND bukken_zokusei IN (1,2,3) AND `status` IN (1,3) ORDER BY kanri_date DESC ,`date` DESC LIMIT 0 , 20

という物で、管理用日付が2つあり、その順に並び替えるといった物です。
SQLは問題なく通り、bukken_idが
815,816,817,818,813,814,808,809,810,811,812,806,805,802,804,796,797,799,800,795
と言う順番で20件検索されます。
PHP側では問題なくその順で表示されていたのですが、C#に同じSQLを移して、

lang

com.CommandText = sql; MySqlDataReader dr = com.ExecuteReader(); while (dr.Read()){ //GRIDへの追加処理 }

こんな感じでグリッドへ追加する処理を書きました(接続処理等は端折ってます)

ExecuteReader()を実行した際にブレイクをかけてdrをクイックウォッチの結果ビューで見ると先ほどの通り0に815、1に816・・と正しい順番で入って来てるのですが、実際に最初にwhile(dr.read())した中だと795が最初に来てしまうのです。
実際にはグリッドに
795,814,809,804,810,812,800,806,815,799,808,813,8796,817,811,805,797,816,802,818
の順で追加されていきます。

最初はデータ自体は正しく入っててグリッドのソートか何かが知らない間にONになってて並び変わってるのかと思いましたが、そうではなかったです。

SQL自体は正しく実行され、drにも正しい順番で入ってるのにwhileで回すと795,814・・のなぜこの順番かも分からない並びでデータがグリッドに追加されます。

なにかヒントを頂けませんでしょうか・・・?

VS2013 C# Framework4.0 MySQLConnector6.8.3.0
参考データを出しておきます、出て欲しい順に並んでます。
bukken_id , kanri_date , date
815,2015-01-09,2015-01-09
816,2015-01-09,2015-01-09
817,2015-01-09,2015-01-09
818,2015-01-09,2015-01-09
813,2015-01-07,2015-01-07
814,2015-01-07,2015-01-07
808,2015-01-05,2015-01-05
809,2015-01-05,2015-01-05
810,2015-01-05,2015-01-05
811,2015-01-05,2015-01-05
812,2015-01-05,2015-01-05
806,2014-12-24,2014-12-24
805,2014-12-19,2014-12-19
802,2014-12-16,2014-12-16
804,2014-12-15,2014-12-18
796,2014-12-15,2014-12-15
797,2014-12-15,2014-12-15
799,2014-12-15,2014-12-15
800,2014-12-15,2014-12-15
795,2014-12-12,2014-12-12

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

まだ回答がついていません

会員登録して回答してみよう

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
87.20%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。