sql - 从 ASP.net 将 SQL 数据导出到 csv 文件
问题描述
我在数据库中有一个视图,我想调用该视图并将数据导出到 Csv 文件。我已经使用以下链接提出了一个解决方案,但是我的视图返回了一些带有逗号值的列,因此在打开 csv 时我收到错误 csv 不安全,可能是 sylk 文件等。一旦我在那里打开它CSV 中没有日期。
我使用的链接
我正在使用 VS 2017 SQL 和 VB.Net
提前致谢
解决方案
该代码实际上有点狡猾,因为它明确地将数据中的逗号替换为分号,并且还在每行的末尾添加了一个额外的逗号。DataTable
这是从带引号的字段值生成 CSV 数据的简洁方法:
Dim csv = String.Join(Environment.NewLine,
myDataTable.AsEnumerable().
Select(Function(row) """" &
String.Join(""",""",
row.ItemArray) &
""""))
如果您不熟悉 LINQ,这里有一种更传统的方法来做同样的事情:
Dim csv As String
For rowIndex = 0 To myDataTable.Rows.Count - 1
'Add a line break before all but the first line.
If rowIndex > 0 Then
csv &= Environment.NewLine
End If
Dim row = myDataTable.Rows(rowIndex)
'Add a double-quote before the first field value.
csv &= """"
For columnIndex = 0 To myDataTable.Columns.Count - 1
'Add a closing double-quote, a delimiting comma and an opening
' Double-quote before all but the first field value.
If columnIndex > 0 Then
csv &= ""","""
End If
csv &= row(columnIndex).ToString()
Next
'Add a double-quote after the last field value.
csv &= """"
Next
推荐阅读
- javascript - 如何确定为什么超链接不起作用?
- statistics - 计算两个叠加的高斯函数的质心
- fosuserbundle - HWIOAuth Symfony 4:服务定义必须是以“@”开头的数组或字符串,但为服务找到字符串
- c# - RouteCreationException:属性路由信息出现以下错误
- javascript - 如何在不链接和嵌套一堆 Promise 的情况下编写 async/await 代码?
- raspberry-pi - vl53l0x 与 android 的东西
- angular - 停止 ng-serve 的命令
- c# - 在 C# 中的 ImageListView 上的 Foreach
- c# - 俄罗斯方块轮换问题
- angular - Angular 6 继承问题