【发布时间】:2020-04-08 08:04:59
【问题描述】:
我正在构建一个用于批量加载到 SQL 中的简单程序。但是我无法弄清楚这个错误。原始代码在下面,然后是没有文本框引用的翻译代码。
导入 System.Data.SqlClient
公开课表1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles insert.Click
Dim SQLCONN As New SqlConnection
Dim SQLCMD As New SqlCommand
SQLCONN = New SqlConnection("Server=" + server.Text + ";Database=" + database.Text + ";Integrated security=True")
SQLCONN.Open()
SQLCMD = New SqlCommand("BULK INSERT " + table.Text +
" FROM " + path.Text +
" With (FIRSTROW = '" + firstrow.Text + "',
FIELDTERMINATOR = '" + seperator.Text + "',
ROWTERMINATOR= '\n');", SQLCONN)
SQLCMD.ExecuteNonQuery()
SQLCONN.Close()
End Sub
这是 SQL 部分将转换为的内容
SQLCMD = New SqlCommand("BULK INSERT test1
FROM 'C:\Program Files\Servers\FFA\csgo\maplist.txt'
With (FIRSTROW = '2',
FIELDTERMINATOR = ' ',
ROWTERMINATOR= '\n')";, SQLCONN)
这是我得到的错误:
System.Data.SqlClient.SqlException: 'C:' 附近的语法不正确。 关键字“with”附近的语法不正确。如果此语句是公用表表达式、xmlnamespaces 子句或更改跟踪上下文子句,则前面的语句必须以分号结束。'
谁能帮我弄清楚为什么会出错?
【问题讨论】:
-
应该以
FIRSTROW = 2结尾,即没有引号。此外,VB.NET 中的字符串连接运算符是&,而不是+。
标签: sql-server vb.net sqlcmd