首页 > 解决方案 > 使用 VB.Net 在 Excel 中使用 WHERE SQL 命令

问题描述

我在 VB.Net 中构建 SQL 命令时遇到困难,其中我的项目通过 OLEDB 连接到 Excel。

Select * From [Sheet$]

此 SQL 命令有效,但每当我尝试添加另一个 SQL 命令WHERE以便过滤数据时,我只想显示。我的 excel 文件中有标题,Name标题是第 4 列,相当于 Column letter: D

Select * From [Sheet$] Where Name='Xander'

它不起作用,它什么也没显示。'WHEREExcel 到 OLEDB 连接的正确SQL 命令是什么?

顺便说一句,这是我正在处理的代码

 Dim conn As OleDbConnection
 Dim adapt As OleDbDataAdapter
 Dim dts As DataSet
 Dim excel As String = My.Settings.DefaultDirectory

 conn = New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + excel + ";Extended Properties=Excel 12.0;")
 conn.Open()

 adapt = New OleDbDataAdapter("Select * from [Sheet$] where NAME='Xander'", conn)
 dts = New DataSet

 adapt.Fill(dts, "[Sheet$]")
 DataGridView1.DataSource = dts
 DataGridView1.DataMember = "[Sheet$]"

 conn.Close()

标签: sqlexcelvb.net

解决方案


您需要在列名周围加上方括号以对其进行转义。AlsoName是一个保留字,所以你必须转义它。

 Select * from [Sheet$] Where [NAME]='Xander'

推荐阅读