【问题标题】:Writing CSV file VB.NET编写 CSV 文件 VB.NET
【发布时间】:2017-11-26 19:20:22
【问题描述】:

我只是在 VB.NET 中使用 CSV 文件保存代码时遇到问题

我正在尝试保存将在 DataGridView 中读取的 CSV 文件。我刚刚制作了“阅读”代码,效果很好!保存文件有什么问题?

Public Class Builder

Sub Create_Records()
    Dim i As Integer
    For i = 0 To Manager.Grid.Rows.Count - 1
        Manager.Grid.Rows.Add("ciao;", "comestai")
    Next
End Sub

Sub Write()
    If (Not System.IO.Directory.Exists("C:\MyPCBuilder")) Then 
        System.IO.Directory.CreateDirectory("C:\MyPCBuilder")
    End If
  
    Dim Write As New System.IO.StreamWriter("C:\MyPCBuilder\builds.csv")
    For i = 0 To Manager.Grid.Rows.Count - 1
        Text = ""
        For j = 0 To 1
            If Text = Text & Manager.Grid.Rows(i).Cells(j).Value & ";" Then
            Else
                Text = Text & Manager.Grid.Rows(i).Cells(j).Value
            End If
        Next
        Write.WriteLine(Text)
    Next
    Write.Close()
End Sub

Private Sub btn_Confirm_Click(sender As Object, e As EventArgs) Handles btn_Confirm.Click
    Create_Records()
    Write()
End Sub

End Class

【问题讨论】:

标签: vb.net csv save


【解决方案1】:

内部循环中的 If 语句是错误的。 Then 部分是空的,条件很奇怪。由于您只有 2 列,因此只需编写

For i = 0 To Manager.Grid.Rows.Count - 1
    Text = Manager.Grid.Rows(i).Cells(0).Value & ";" & Manager.Grid.Rows(i).Cells(1).Value
    Write.WriteLine(Text)
Next

如果你想保留这个内部循环(以防你有更多列或可变数量的列),请改为测试索引(未显示外部循环)

Text = ""
For j = 0 To 1
    If j > 0 Then
        Text = Text & ";"
    End If
    Text = Text & Manager.Grid.Rows(i).Cells(j).Value
Next

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-06-18
    • 2011-11-04
    • 1970-01-01
    • 1970-01-01
    • 2023-01-30
    • 2011-06-27
    • 2019-02-23
    • 2010-12-13
    相关资源
    最近更新 更多