使用 SELECT ... INTO 将 Access 表中的特定列导出到 CSV

Posted

技术标签:

【中文标题】使用 SELECT ... INTO 将 Access 表中的特定列导出到 CSV【英文标题】:Export specific columns from Access table to CSV using SELECT ... INTO 【发布时间】:2016-01-05 03:13:01 【问题描述】:

我可以通过 VB.NET 使用以下代码从 Access 数据库中选择整个表到 CSV:

Dim AccessCommandCust As New OleDbCommand("SELECT * INTO [Text;DATABASE=C:\TEMP].[CUSTOMERS.csv] FROM Customers", AccessConn)

但是,我不需要整个表格,只需要两列——名字和姓氏。 SQL 很简单,但是当我尝试使用以下代码时:

Dim AccessCommandCust As New OleDbCommand("SELECT FirstName, LastName INTO [Text;DATABASE=C:\TEMP].[CUSTOMERS.csv] FROM Customers", AccessConn)

引发异常:

Microsoft Jet 数据库引擎找不到对象“CUSTOMERS.csv”)。

我正试图找出我哪里出错了。

【问题讨论】:

如果您发现 SQL 字符串或语法有很多问题,您还可以使用适配器来填充 DataSet。然后您只能选择所需的列并最终将其存储到 csv 中。这非常快,您可以管理数据。 这就是我现在的位置。 SQL 本身就很好,但是这个特定的命令似乎不允许除了选择整个表 (*) 之外的任何东西。感谢您的回复! 【参考方案1】:

以下语法最终对我有用:

Dim AccessCommandCust As New System.Data.OleDb.OleDbCommand("SELECT FirstName, LastName INTO [Text;HDR=YES;DATABASE=C:\Temp\].CUSTOMERS.csv FROM Customers", AccessConn)

文件名本身的括号 [] 似乎是问题所在。

【讨论】:

以上是关于使用 SELECT ... INTO 将 Access 表中的特定列导出到 CSV的主要内容,如果未能解决你的问题,请参考以下文章

如何将 SQL INSERT INTO SELECT 与 codeigniter 一起使用

SELECT INTO 和 INSERT INTO SELECT 两种表复制语句

SELECT INTO 和 INSERT INTO SELECT 两种表复制语句

oracle SELECT INTO 和 INSERT INTO SELECT 两种表复制语句详解

将多个 SELECT INTO 结果合并为一个变量

SQL学习select into:复制表信息