使用 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 两种表复制语句