電子書籍の厳選無料作品が豊富!

DataGridViewを使って、アクセスからデータベースを読み込んだんですが、昇順になりません。どうすればよろしいですか?
例えば、
NO.





とあって、新しく4を入れても6の下に来てしまいます。
自動に昇順にするにはどうすればよろしいですか?

A 回答 (3件)

フィールド名が 番号なら



SELECT * FROM 名前 ORDER BY [番号]
といった具合にします
    • good
    • 0
この回答へのお礼

大変勉強になりました。
ありがとうございました。解決しました。

お礼日時:2007/12/13 15:28

 以下はVS2005の使用を前提にしています。


 #1さんの仰る事が基本ですが、Visual Studio 2005では、それを行うために、三つのインターフェイスが用意されています。

(1) DataSet→BindingSource→DataGridViewの場合
 ・DataSet Degignerの中のTableAdapterの構成を開き、ウィザードに従って、No.フィールドに昇順を指定する。
 ・またはBindingSourceのSortプロパティーに、"No."を指定する。昇順,降順の指定書式はSQLと同じです。

(2) DataGridViewで並べ替える場合
 ・スマートタスクの列編集で、No.列のSortModeにAutomatic(昇順)を指定する。

 余談ですが、DataSetって壊れやすいですよね?
    • good
    • 0
この回答へのお礼

(2) DataGridViewで並べ替える場合
 ・スマートタスクの列編集で、No.列のSortModeにAutomatic(昇順)を指定する。

になってました。駄目でした(T_T)

お礼日時:2007/12/12 00:02

データベースは一般的にレコード順の保障はありません


データを取得するSQLで順序を決めるようにします

SELECT * FROM TABLE ORDER BY フィールド名
といった具合に『ORDER BY句』を使って希望の順序になるようにします
    • good
    • 0
この回答へのお礼

'▼データ取得
Dim Cn As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;DataSource=C:\名前\データ.mdb")
Dim SQLCm As OleDbCommand = Cn.CreateCommand
Adapter = New OleDbDataAdapter(SQLCm)
Dim Builder As New OleDbCommandBuilder(Adapter)
Dim Table As New DataTable

SQLCm.CommandText = "SELECT * FROM 名前"
Adapter.Fill(Table)

'値の表示
DataGridView1.DataSource = Table

'後処理
Table.Dispose()

と作ったのですが、何処に『ORDER BY句』を入れればよろしいでしょうか?
"SELECT * FROM 名前"のところに入れても
Adapter.Fill(Table)のところでエラーが出てしまいます。
データベース初心者で申し訳ありません。
教えてください。

お礼日時:2007/12/12 00:38

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