繁体   English   中英

Vb.net将数据从datagridview保存到txt并加载

[英]Vb.net Save data from datagridview to txt and load it

我是一名新程序员,只是研究Visual Basic,并完成考试而获得的数据

工具_1螺丝刀
Tool_2螺丝
Tool_3磁铁

还有很多
我已经创建了项目,它具有数据网格视图(两列,工具和名称)和两个按钮(btSave和btOpen)
我只是用这段代码尝试

Private Sub btSave_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btSave.Click
SaveGridData(DataGridView1, ThisFilename)
End Sub
    Private Sub SaveGridData(ByRef ThisGrid As DataGridView, ByVal Filename As String)
        ThisGrid.ClipboardCopyMode = DataGridViewClipboardCopyMode.EnableWithoutHeaderText
        ThisGrid.SelectAll()
        IO.File.WriteAllText(Filename, ThisGrid.GetClipboardContent().GetText.TrimEnd)
        ThisGrid.ClearSelection()
    End Sub
    Private Sub btOpen_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btOpen.Click
    LoadGridData(DataGridView1, ThisFilename)
End Sub

Private Sub LoadGridData(ByRef ThisGrid As DataGridView, ByVal Filename As String)
        ThisGrid.Rows.Clear()
        For Each THisLine In My.Computer.FileSystem.ReadAllText(Filename).Split(Environment.NewLine)
            ThisGrid.Rows.Add(Split(THisLine, " "))
        Next
    End Sub

当我保存文件时,txt文件没问题,但是当我要加载文本时,“ Tool_1 Screwdriver”未拆分,但在“ Tools”列中
有解决办法吗?

在loadgriddata中使用循环的此insetad

For Each THisLine In My.Computer.FileSystem.ReadAllText(Filename).Split(Environment.NewLine)
dim str as string()
str=thisline.split(" ")
ThisGrid.Rows.Add(str(0),str(1))
Next

希望能帮助到你。

嘿,我也为此感到挣扎,但是我有一些有用的代码:

导出列表视图:

    System.IO.Directory.CreateDirectory("C:\RS Account Maker\Accounts" & "\")
    SaveFileDialog1.ShowDialog()
    Dim Path As String = SaveFileDialog1.FileName
    Dim AllItems As String = ""

    Try

        For Each item As ListViewItem In ListView1.Items
            AllItems = AllItems & item.Text & "#" & item.SubItems(1).Text & "#" & item.SubItems(2).Text & vbNewLine
        Next

        AllItems = AllItems.Trim

    Catch ex As Exception
    End Try


    Try
        If My.Computer.FileSystem.FileExists(Path) Then
            My.Computer.FileSystem.DeleteFile(Path)
        End If

        My.Computer.FileSystem.WriteAllText(Path, AllItems, False)

    Catch ex As Exception
        MsgBox("Error" & vbNewLine & ex.Message, MsgBoxStyle.Exclamation, "Error ")
    End Try

导入列表视图:

    OpenFileDialog1.ShowDialog()
    Dim Path As String = OpenFileDialog1.FileName
    Dim AllItems As String



    Try
        AllItems = My.Computer.FileSystem.ReadAllText(Path)

        Dim ItemLines As New TextBox
        ItemLines.Text = AllItems


        For Each line As String In ItemLines.Lines

            Dim a1() As String = line.Split("#")

            Dim ItemName As String = a1(0)
            Dim SubItem1 As String = a1(1)
            Dim SubItem2 As String = a1(2)

            Dim Item As New ListViewItem(ItemName)

            Item.SubItems.Add(SubItem1)
            Item.SubItems.Add(SubItem2)

            ListView1.Items.AddRange(New ListViewItem() {Item})

        Next

    Catch ex As Exception
        MsgBox("Error" & vbNewLine & ex.Message, MsgBoxStyle.Exclamation, "Error ")
    End Try

下一行是错误的。

ThisGrid.Rows.Add(Split(THisLine, " "))

上面的代码修改如下。

Dim ThisFilename As String = Application.StartupPath & "\MyData.dat"

    Private Sub butSave_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click

        SaveGridData(Datagrid1, ThisFilename)

    End Sub

    Private Sub butLoad_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click

        LoadGridData(Datagrid1, ThisFilename)

    End Sub

    Private Sub SaveGridData(ByRef ThisGrid As DataGridView, ByVal Filename As String)

        ThisGrid.ClipboardCopyMode = DataGridViewClipboardCopyMode.EnableWithoutHeaderText

        ThisGrid.SelectAll()

        IO.File.WriteAllText(Filename, ThisGrid.GetClipboardContent().GetText.TrimEnd)

        ThisGrid.ClearSelection()

    End Sub

    Private Sub LoadGridData(ByRef ThisGrid As DataGridView, ByVal Filename As String)

        ThisGrid.Rows.Clear()

        For Each THisLine In My.Computer.FileSystem.ReadAllText(Filename).Split(Environment.NewLine)

            ThisGrid.Rows.Add(Split(THisLine, ControlChars.Tab))

        Next

    End Sub

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM