-1

vb アプリケーションのリスト ビューに SQL データベース テーブル データを表示しようとしています。次のコードを使用しました

Public Class Form1
    Dim conn As SqlClient.SqlConnection
    Dim cmd As SqlClient.SqlCommand
    Dim da As SqlClient.SqlDataAdapter
    Dim ds As DataSet
    Dim itemcoll(100) As String

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    Me.ListView1.View = View.Details
    Me.ListView1.GridLines = True
    conn = New SqlClient.SqlConnection("Data Source=AYYAGARI-PC\WINCC;Initial Catalog=anand;Integrated Security=True")
    conn.Open()
    Dim strQ As String = String.Empty
    strQ = "SELECT * FROM [anand].[dbo].[WINCC] ORDER BY [dateandtime]"
    cmd = New SqlClient.SqlCommand(strQ, conn)
    da = New SqlClient.SqlDataAdapter(cmd)
    ds = New DataSet
    da.Fill(ds, "Table")
    Dim i As Integer = 0
    Dim j As Integer = 0
    ' adding the columns in ListView
    For i = 0 To ds.Tables(0).Columns.Count - 1
        Me.ListView1.Columns.Add(ds.Tables(0).Columns(i).ColumnName.ToString())
    Next
    'Now adding the Items in Listview
    Try
        Call Timer1_Tick(sender, e)
    Catch ex As Exception
        MessageBox.Show(ex.Message)
    End Try
End Sub

Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
    For Each i As ListViewItem In ListView1.SelectedItems
        ListView1.Items.Remove(i)
    Next
    Try
        For i = 0 To ds.Tables(0).Rows.Count - 1
            For j = 0 To ds.Tables(0).Columns.Count - 1
                itemcoll(j) = ds.Tables(0).Rows(i)(j).ToString()
            Next
            Dim lvi As New ListViewItem(itemcoll)
            Me.ListView1.Items.Add(lvi)
        Next
    Catch ex As Exception
        MessageBox.Show(ex.Message)
    End Try
End Sub

上記のコードの問題は、SQL でテーブル データを更新する (データを挿入または削除する) たびに、リスト ビューで同じデータが更新されないことです。これで私を助けてください。

4

1 に答える 1

0
    Me.ListView1.View = View.Details
    Me.ListView1.GridLines = True
    conn = New SqlClient.SqlConnection("Data Source=AYYAGARI-PC\WINCC;Initial Catalog=anand;Integrated Security=True")
    conn.Open()
    Dim strQ As String = String.Empty
    strQ = "SELECT * FROM [anand].[dbo].[WINCC] ORDER BY [dateandtime]"
    cmd = New SqlClient.SqlCommand(strQ, conn)
    da = New SqlClient.SqlDataAdapter(cmd)
    ds = New DataSet
    da.Fill(ds, "Table")
    Dim i As Integer = 0
    Dim j As Integer = 0
    ' adding the columns in ListView
    For i = 0 To ds.Tables(0).Columns.Count - 1
        Me.ListView1.Columns.Add(ds.Tables(0).Columns(i).ColumnName.ToString())
    Next
    'Now adding the Items in Listview
    Try
        Call Timer1_Tick(sender, e)
    Catch ex As Exception
        MessageBox.Show(ex.Message)
    End Try

挿入または更新を行ったボタンにこのコードを再度追加してみてください。

アップデート

コードを長くしたり、メモリや容量を無駄にしたりしないようにするための別のヒントを紹介します。

すべてのコードを新しいサブに挿入してみてください。

    private sub mycode
    msgbox("Hello World")
    end sub >> This code won't work when you debug, cause it just like a stored code, so need to be called to make it work

Private sub Form_load......  > E.g this is your form load code
call mycode  >> Called the code above
end sub >> when you debug, your form will auto called the mycode
于 2013-04-08T06:14:11.793 に答える