Wpf 可以创建csv,但无法写入
我的问题与此类似。我可以创建csv,但创建后无法写入。但与那篇文章不同的是,我没有两次创建这个文件 我的代码:Wpf 可以创建csv,但无法写入,wpf,vb.net,csv,Wpf,Vb.net,Csv,我的问题与此类似。我可以创建csv,但创建后无法写入。但与那篇文章不同的是,我没有两次创建这个文件 我的代码: Dim path As String = "C:\xxx\yyy\" & csvFileName If File.Exists(path) = False Then ' Create a file to write to. Dim createText As String = String.Empty + Environment.NewLine Fil
Dim path As String = "C:\xxx\yyy\" & csvFileName
If File.Exists(path) = False Then
' Create a file to write to.
Dim createText As String = String.Empty + Environment.NewLine
File.WriteAllText(path, createText)
End If
Dim sw As StreamWriter = New StreamWriter(csvFileName, True)
'first, write all column names to csv.
Dim sb As New StringBuilder
For Each col As DataColumn In dt.Columns
sb.Append(col.ColumnName)
Next
sw.Write(sb.ToString)
'now, write rows to csv.
For Each row As DataRow In dt.Rows
sb = New StringBuilder
For Each col As DataColumn In dt.Columns
sb.Append(row(col.ColumnName))
Next
sw.Write(sb.ToString)
Next
sw.Close()
感谢您的帮助。谢谢。您在这里使用了两个不同的文件名。
StreamWriter
应该写入path
,而不是csvFileName
:
Dim sw As StreamWriter = New StreamWriter(path, True)
代码中有很多问题
sw.Write()
方法,而不是sw.WriteLine()
(所有文本将写入一行) Dim path As String = "C:\xxx\yyy\" & csvFileName
If File.Exists(path) = False Then
' Create a file to write to.
Dim createText As String = String.Empty + Environment.NewLine
File.WriteAllText(path, createText)
End If
Using sw As StreamWriter = New StreamWriter(path, True)
'first, write all column names to csv.
Dim sb As New StringBuilder
For Each col As DataColumn In dt.Columns
sb.Append(col.ColumnName & ",")
Next
sw.WriteLine(sb.ToString)
'now, write rows to csv.
For Each row As DataRow In dt.Rows
sb = New StringBuilder
For Each col As DataColumn In dt.Columns
sb.Append(row(col.ColumnName).ToString & ",")
Next
sw.WriteLine(sb.ToString)
Next
sw.Close()
End Using
您指的是哪个文件,“路径”还是“csvFileName”?“不能写”是什么意思?您是否遇到了异常或发生了什么?哎呀,我看到我在哪里使用了csvFileName,我在设置streamwriter时应该在哪里使用path。我没有收到异常,只是csv中没有数据。谢谢。这回答了你的问题?是的。问题已经回答了。谢谢你,哈迪。代码已被修改,运行正常。@伊曼宁很高兴help@EManning对一个详细而有用的答案表示感谢,然后接受并投票表决另一个答案,这是一个好主意。Lol:)