簡體   English   中英

在DataGridView的單獨行中顯示.txt文件中的數據

[英]Displaying data from .txt file in separate rows in DataGridView

我是VB.net的新手,並已完成了作業。 我需要能夠讀取某些行並將其顯示在DataGridView中。 我已經能夠將我的.txt文件鏈接到DGV,但是它讀取的是整個文件,而不是特定的行。 我有4個按鈕:btn1,btn2,btn3,btn4。

我向窗體添加了一個新按鈕,該按鈕從文本文件加載數據,將其解析為數據表,然后將DataGridView1.DataSource設置為該DataTable。 然后,第二種方法創建一個新的數據表,並從主數據表中導入指定的行,並將其顯示在DGV中。

我需要能夠按btn1並將數據顯示在DGV中,如果之后按btn2則數據將顯示在其下一行中。

任何幫助將不勝感激。

Private txtDataTable As DataTable
Private Sub loadFileBtn_Click(sender As Object, e As EventArgs) Handles        
loadFileBtn.Click
txtDataTable = New DataTable("txtContents")

Dim txtContents As String()
Try
    txtContents = IO.File.ReadAllLines("database.txt")
Catch ex As Exception
    MsgBox(ex.Message)
    Return
End Try

Dim txtLines As New List(Of String())
txtContents.ToList().ForEach(Sub(x) txtLines.Add(x.Split(CChar(vbTab))))

If txtLines.Count > 0 Then
    txtLines.Item(0).ToList.ForEach(Sub(x) txtDataTable.Columns.Add(New DataColumn(x.ToString)))
    txtLines.RemoveAt(0)
End If

If txtLines.Count > 0 Then
    txtLines.ToList.ForEach(Sub(x) txtDataTable.Rows.Add(x.ToArray))
End If
DataGridView1.DataSource = txtDataTable
End Sub


Private Sub btn_Click(sender As Object, e As EventArgs) Handles btn1.Click,         
btn2.Click, btn3.Click, btn4.Click
If txtDataTable Is Nothing Then Return

Dim rowIndex As Integer
If Integer.TryParse(DirectCast(sender, Button).Name.Replace("btn", String.Empty), rowIndex) Then
    rowIndex -= 1
Else
    Return
End If

Dim TempTable As DataTable = txtDataTable.Clone
If rowIndex < txtDataTable.Rows.Count Then
    TempTable.ImportRow(txtDataTable.Rows(rowIndex))
End If

DataGridView1.DataSource = TempTable

結束子

輸出量

我從您的代碼假設這是一個TAB分隔的文本文件。 如果您這樣讀取文件怎么辦:

    Using fileReader As New FileIO.TextFieldParser(PathToFileAsString)
        fileReader.TextFieldType = FileIO.FieldType.Delimited
        fileReader.SetDelimiters(vbTab)
        While Not fileReader.EndOfData
            Dim currentRow as String() = fileReader.ReadFields
            For Each currentField As String In currentRow
                'Have your way with it.
            Next
        End While
    End Using

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM