Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 将包含数据的完整CSV结构复制到Datatable_Sql_Vb.net_Ms Access - Fatal编程技术网

Sql 将包含数据的完整CSV结构复制到Datatable

Sql 将包含数据的完整CSV结构复制到Datatable,sql,vb.net,ms-access,Sql,Vb.net,Ms Access,我必须复制完整的CSV文件数据及其结构,而无需编写长代码。 我使用CSV访问Datatable,但在使用相同的SQL Datatase代码时出错 CSV访问数据表的我的代码 试试看 Dim OleDbCnn作为新的OLEDB连接 OleDbCnn.ConnectionString=“Provider=Microsoft.Jet.OLEDB.4.0;数据源=D:\menifestogo.mdb” OleDbCnn.Open() Dim cmd作为新的OleDbCommand(“从[Text;Dat

我必须复制完整的CSV文件数据及其结构,而无需编写长代码。 我使用CSV访问Datatable,但在使用相同的SQL Datatase代码时出错

CSV访问数据表的我的代码

试试看
Dim OleDbCnn作为新的OLEDB连接
OleDbCnn.ConnectionString=“Provider=Microsoft.Jet.OLEDB.4.0;数据源=D:\menifestogo.mdb”
OleDbCnn.Open()
Dim cmd作为新的OleDbCommand(“从[Text;Database=d:\;Hdr=No].[csvfile.csv]”中选择*进入[TransactionDetails],OleDbCnn)
cmd.ExecuteNonQuery()
OleDbCnn.Close()
MsgBox(“成功…”)
特例
MsgBox(例如消息)
结束尝试
我的CSV到SQL数据库的代码

试试看
Dim OleDbCnn作为新的SqlClient.SqlConnection
OleDbCnn.ConnectionString=“服务器=DESKTOP-AS3NIDD\SQLEXPRESS;数据库=dbS;集成安全性=SSPI”
OleDbCnn.Open()
将cmd设置为新的SqlClient.SqlCommand(“从[Text;Database=d:\;Hdr=No].[csvfile.csv]”中选择*进入[TransactionDetails],OleDbCnn)
cmd.ExecuteNonQuery()
OleDbCnn.Close()
MsgBox(“成功…”)
特例
MsgBox(例如消息)
结束尝试
获取错误:

“对象名称”文本无效;数据库=d:\;Hdr=No.csvfile.csv'


坦率地说,如果SQLServer能够解析
[Text;Database=d:\;Hdr=No].[csvfile.csv]
并理解它必须使用Jet驱动程序才能访问csv,我会感到惊讶-access可能会起作用,因为您已经在使用Jet驱动程序,而且它能够理解文本是访问某个文件夹中文件的一种方式。Access/Jet和SQLServer有很大不同

通过发出一条SQL语句将CSV大容量加载到SQLServer中看起来更像:

BULK INSERT Sales.Orders
FROM '\\SystemX\DiskZ\Sales\data\orders.csv'
WITH ( FORMAT='CSV');
大量的选择

如果您想创建一个新表,类似这样的东西应该可以工作

SELECT *
INTO YOUR_NEW_TABLE
FROM 
  OPENROWSET(
    'MSDASQL', 
    'Driver={Microsoft Text Driver (*.txt;*.csv)};DefaultDir=PATH_TO_DIRECTORY_HOLDING_FILE;Extensions=csv;',
    'select * from NAME_OF_CSV_FILE.csv'
  ) csv;

很明显,文件名存在问题。至于如何解决,我不确定。您是否尝试过删除
;Hdr=No.
?对于批量插入,我必须在数据库中具有具有该结构的表,我希望获得csv文件Think FileDialog,并直接将其结构和数据导入数据库。或者,我可以从CSV文件中提取第一行来创建结构,并使用循环手动添加行,但我想知道我是否可以使用access实现某些功能,而无需任何硬编码。为什么可能无法使用SQL server数据库执行相同的任务。