- - PR -
datagridで行の値を入れ替えたい
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2004-01-26 12:54
それを実装したいのであれば、 1.現在の位置情報をDBに保存する必要がある。 2.読み込む時に、現在の位置情報順に読み込まなければいけない。 の2点が必要かと思います。 | ||||||||
|
投稿日時: 2004-01-26 13:53
データテーブルの情報がそのままデータベースに書き込まれるものと思っていました。
どうも基本が分かっていないようで、すみません。 もっともっと勉強します。とりあえず配列を使ってみます。 | ||||||||
|
投稿日時: 2004-01-26 14:04
すいません。読み違えてました。 データテーブルの情報はデータベースに書き込まれますが、表示順は書き込まれませんと 書いたつもりでした。
この一文をコメントアウトしても駄目ですか? | ||||||||
|
投稿日時: 2004-01-26 14:41
コメントアウトしてもダメでした。
VS.net 2002を使っています。 | ||||||||
|
投稿日時: 2004-01-26 14:47
あれれ?ちょっと待ってください。データの順番を表す項目は、データベース上にない、のですよね?
そうであれば、いくらDataTableの順番を入れ替えたところで、再取り出ししたときに表示される順番を変更することはできません。なぜなら、データベースは「データの集合」にすぎず、「データの順序」は関係ないからです。 参考: http://www.mars.dti.ne.jp/~o-shin/new/whatrdb/body40.html http://www.mars.dti.ne.jp/~o-shin/new/whatrdb/body80.html (とりあえず、RDBに関係したもの、ということで) ですから、「取り出し順序」が必要な場合は、「取り出し順序」を表す「列」を定義しなければなりません。 ところで、「あの〜 初心者なんですけど・・・・」は、どれにたいしてでしょう?申し訳ないですが、「何がわからない」のか、「わからない」/「忘れている」のです。そういう意味で、初心者の方の質問はとても参考になるのです。 #新人君の教育や、親類近所連中に聞かれたとき、 #何を教えなければならないか、わからないところを教えてくれる それで、私が前に示した「自動で、たくさん使っているものを先に表示する」は、検討していただけましたでしょうか。NVL関数以外はそのまま使えると思います。SQL ServerではNULLは後ろに置かれるようなので、Accessも同じだと思います。 | ||||||||
|
投稿日時: 2004-01-28 11:21
Jittaさんに教えていただいた方法にトライしています。
報告はしばらくお待ちください。 コンボボックスに使用頻度別の学習機能を持たせるという感じですね。 RDBに関係したホームページも見ました。 | ||||||||
|
投稿日時: 2004-02-09 11:54
Jittaさんへ
しばらくインターネットのない環境にいたので報告が遅れてしまいました。 その間SQL関係の本を読んでいました。 以前と違うのは、マスターテーブル(T県名)にIDを付けました。 T県名 T顧客 ---------------------- ---------------------------- ID 県名 ID 氏名 県ID ・・・・・・ 01 東京都 001 じいじ 01 02 神奈川県 002 □▲ 02 03 静岡県 003 ○× 02 04 愛知県 004 △○ 03 : : : : : ---------------------- ---------------------------- とします。 ここで、Jittaさんのコードを元に SELECT * FROM T県名 LEFT JOIN(SELECT 県ID,COUNT(県ID) AS cnt FROM T顧客 GROUP BY 県ID) AS dt ON T県名.ID = dt.県ID ORDER BY 4 DESC,1 とやった結果が --------------------------------------- ID 県名 県ID cnt 02 神奈川県 02 2 01 東京都 01 1 03 静岡県 03 1 04 愛知県 null null : : : : --------------------------------------- でした。 このあとはまだやっていませんが、コンボボックスの DataSouceとDataMemberを設定すればできると思います。 IDを加えたので他の方法もあると思いますが、長い間ありがとうございました。 | ||||||||
|
投稿日時: 2004-02-09 12:20
ちょっとだけ。
SELECT * 〜 ORDER BY 4 ですが、「テーブル定義」が変わると「4」も変更しなければなりません。それだけ注意してください。できるだけ、列名を指定する方がよいです(若干、スピードも上がる)。 「個数が同じだったときも、順番を一意にする」為の追加がされていますね。私、忘れてました。 |