DataGridViewの再表示項目が入れ替わらない

解決


トシ  2009-03-26 15:12:38  No: 145832  IP: [192.*.*.*]

お世話になります。
VISTA(VB2008 SQLSERVER2005)でプログラムを開発しています、
戸惑ってしまい教えて頂きたく投稿しました。

フォームにコマンドボタンを2つを貼り付け
ボタンをクリックすることにより、コンボボックスの内容を
読みかえるプログラムを作っています。

ボタン1で得意先名順にデータ表示  
ボタン2で得意先名カナ順にデータ表示  

※問題の現象
プログラム実行→ボタン1(得意先名、得意先名カナ)→ボタン2(得意先名、得意先名カナ)の順でヘッター項目表示
プログラム実行→ボタン1(得意先名カナ、得意先名)→ボタン2(得意先名カナ、得意先名)の順でヘッター項目表示
データは順に並ぶのですが、項目が入れ替わりません。

以前の設定を覚えているのでしょうか?
DataGridView1を初期化する命令を送れば解決するのでしょうか?
いろいろと考えましたが解決できません、よろしくお願いします。

Imports System.Data.SqlClient
Public Class Form1

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Using cn As New SqlConnection(My.Settings.SqlConnect)
            cn.Open()
            Dim sql As String
            Dim table As New DataTable

            sql = "SELECT 得意先名,得意先名カナ FROM 得意先 ORDER BY 得意先番号"

            Dim Adapter As New SqlDataAdapter(sql, cn)
            Adapter.Fill(table)

            DataGridView1.DataSource = table
        End Using
    End Sub

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        Using cn As New SqlConnection(My.Settings.SqlConnect)
            cn.Open()
            Dim sql As String
            Dim table As New DataTable

            sql = "SELECT 得意先名カナ,得意先名 FROM 得意先 ORDER BY 得意先名カナ"

            Dim Adapter As New SqlDataAdapter(sql, cn)
            Adapter.Fill(table)

            DataGridView1.DataSource = table
        End Using
    End Sub
End Class

編集 削除
特攻隊長まるるう  2009-03-29 08:34:08  No: 145833  IP: [192.*.*.*]

> DataGridView1を初期化する命令を送れば解決するのでしょうか?
まぁ、そうみたいね。

DataSource に Nothing を設定して一度未参照の
状態にしてやってもいいみたいだし、

DataSource の DataTable.Columns.Clear()でも
いいみたいだし、(この方法はプログラムとしては
いまいち不細工な処理に思えます)

DataGridView.Columns.Clear() でもいいみたい。

お好きなようにどうぞ。

編集 削除
トシ  2009-03-30 19:09:09  No: 145834  IP: [192.*.*.*]

特攻隊長まるるう様、ありがとうございます
DataGridView.Columns.Clear()を入れ解決しました。

編集 削除