- ベストアンサー
VB2005での質問です。
DataGridViewを使って、アクセスからデータベースを読み込んだんですが、昇順になりません。どうすればよろしいですか? 例えば、 NO. 1 2 3 5 6 とあって、新しく4を入れても6の下に来てしまいます。 自動に昇順にするにはどうすればよろしいですか?
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
フィールド名が 番号なら SELECT * FROM 名前 ORDER BY [番号] といった具合にします
その他の回答 (2)
以下はVS2005の使用を前提にしています。 #1さんの仰る事が基本ですが、Visual Studio 2005では、それを行うために、三つのインターフェイスが用意されています。 (1) DataSet→BindingSource→DataGridViewの場合 ・DataSet Degignerの中のTableAdapterの構成を開き、ウィザードに従って、No.フィールドに昇順を指定する。 ・またはBindingSourceのSortプロパティーに、"No."を指定する。昇順,降順の指定書式はSQLと同じです。 (2) DataGridViewで並べ替える場合 ・スマートタスクの列編集で、No.列のSortModeにAutomatic(昇順)を指定する。 余談ですが、DataSetって壊れやすいですよね?
お礼
(2) DataGridViewで並べ替える場合 ・スマートタスクの列編集で、No.列のSortModeにAutomatic(昇順)を指定する。 になってました。駄目でした(T_T)
- redfox63
- ベストアンサー率71% (1325/1856)
データベースは一般的にレコード順の保障はありません データを取得するSQLで順序を決めるようにします SELECT * FROM TABLE ORDER BY フィールド名 といった具合に『ORDER BY句』を使って希望の順序になるようにします
お礼
'▼データ取得 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)のところでエラーが出てしまいます。 データベース初心者で申し訳ありません。 教えてください。
お礼
大変勉強になりました。 ありがとうございました。解決しました。