【发布时间】:2016-04-22 08:52:20
【问题描述】:
我有一个导入 CSV 文件(无标题行)并将内容写入数据表的应用程序。然后将数据表作为参数传递给我的 DAL 中的一个函数,该函数使用 sqlBulkCopy 命令将数据写入 SQL Server 数据库。
我已经将代码作为 Webforms 和 Windows Forms 环境运行测试,并注意到在这两种情况下第一行数据都丢失了。有谁知道为什么会这样以及我该如何纠正它?感谢您的帮助。
我应该补充一点,如果 CSV 文件有标题行,则不会发生这种情况。
用户界面
Dim csvFileFolder As String = "D:\PROJECTS\Letters(DOTNET)\TextFiles\"
Dim csvFileName As String = "quad1a.txt"
Dim connString As String = "Driver={Microsoft Text Driver (*.txt; *.csv)};Dbq=" _
& csvFileFolder & ";Extended Properties=""Text;HDR=No;FMT=Delimited"""
Dim conn As New Odbc.OdbcConnection(connString)
'Open a data adapter, specifying the file name to load
Dim da As New Odbc.OdbcDataAdapter("SELECT * FROM [" & csvFileName & "]", conn)
'Then fill a data table, which can be bound to a grid
Dim dt As New DataTable
da.Fill(dt)
grdQuad.DataSource = dt
grdQuad.DataBind()
LettersBLL.TemporaryPatientManager.InsertIntoBulkTable(dt)
DAL
Public Shared Function InsertIntoBulkTable(dt As DataTable) As DataTable
Using myConnection As New SqlConnection(ApplicationConfiguration.ConnectionString)
Using sqlBulkCopy As New SqlBulkCopy(myConnection)
'Set the database table name
sqlBulkCopy.DestinationTableName = "tblBulkInsert"
myConnection.Open()
sqlBulkCopy.WriteToServer(dt)
myConnection.Close()
End Using
End Using
Return Nothing
End Function
【问题讨论】:
标签: sql-server vb.net csv