oledb query-condition 按数字列
oledb query-condition with column by number
我正在通过 oledb 阅读 excel-document。当没有标题行时,如何使用查询中的列来设置条件?
我想做这样的事情:
SELECT * FROM [MY_SHEET$A3:M] WHERE [1] IS NOT NULL;
当我尝试这个时,出现以下错误:
No value was specified for at least one required parameter.
我想使用 column-number 来满足我的条件。当我在我的连接字符串中说 HDR=TRUE
时,我可以使用 column-name,但是文档中有一些 duplicate-names 导致了问题,我得到了错误列的值。重命名文档中的列将是一个解决方案,但是使用列号可以吗?
根据 Steve 和 Simo 的评论,我尝试了以下方法:
SELECT * FROM [MY_SHEET$A3:M] WHERE [F1] IS NOT NULL;
但我也一样error-message。我用 HDR=TRUE
和 HDR=FALSE
WIth []
arround F1
和 wihtout.
试了一下
这里我上传了xlsx-file:https://ufile.io/fky0l
确切的 command-text 是 SELECT * FROM [Sheet1$A3:M] WHERE F1 IS NOT NULL
这是连接字符串
"Provider=Microsoft.ACE.OLEDB.12.0;Data
Source=D:\stack.xlsx;Extended Properties=\"Excel
12.0 Xml;HDR=TRUE\""
这是代码片段:
var connectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:\stack.xlsx;Extended Properties=\"Excel 12.0 Xml;HDR=TRUE\"";
using (var connection = new OleDbConnection(connectionString)
{
connection.Open();
using (var command = connection.CreateCommand())
{
command.CommandText = $"SELECT * FROM [Sheet1$A3:M] WHERE F1 IS NOT NULL";
var reader = command.ExecuteReader();
while(reader.Read())
{
var value = reader.Get<string>(0);
Console.WriteLine(value);
}
}
}
问题是我的连接字符串。 HDR 的可能值为 YES 和 NO。我使用的是 TRUE 和 FALSE。将我的连接字符串更改为:
"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:\stack.xlsx;Extended
Properties=\"Excel 12.0 Xml;HDR=NO\""
一切正常...
我正在通过 oledb 阅读 excel-document。当没有标题行时,如何使用查询中的列来设置条件?
我想做这样的事情:
SELECT * FROM [MY_SHEET$A3:M] WHERE [1] IS NOT NULL;
当我尝试这个时,出现以下错误:
No value was specified for at least one required parameter.
我想使用 column-number 来满足我的条件。当我在我的连接字符串中说 HDR=TRUE
时,我可以使用 column-name,但是文档中有一些 duplicate-names 导致了问题,我得到了错误列的值。重命名文档中的列将是一个解决方案,但是使用列号可以吗?
根据 Steve 和 Simo 的评论,我尝试了以下方法:
SELECT * FROM [MY_SHEET$A3:M] WHERE [F1] IS NOT NULL;
但我也一样error-message。我用 HDR=TRUE
和 HDR=FALSE
WIth []
arround F1
和 wihtout.
这里我上传了xlsx-file:https://ufile.io/fky0l
确切的 command-text 是 SELECT * FROM [Sheet1$A3:M] WHERE F1 IS NOT NULL
这是连接字符串
"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:\stack.xlsx;Extended Properties=\"Excel 12.0 Xml;HDR=TRUE\""
这是代码片段:
var connectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:\stack.xlsx;Extended Properties=\"Excel 12.0 Xml;HDR=TRUE\"";
using (var connection = new OleDbConnection(connectionString)
{
connection.Open();
using (var command = connection.CreateCommand())
{
command.CommandText = $"SELECT * FROM [Sheet1$A3:M] WHERE F1 IS NOT NULL";
var reader = command.ExecuteReader();
while(reader.Read())
{
var value = reader.Get<string>(0);
Console.WriteLine(value);
}
}
}
问题是我的连接字符串。 HDR 的可能值为 YES 和 NO。我使用的是 TRUE 和 FALSE。将我的连接字符串更改为:
"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:\stack.xlsx;Extended Properties=\"Excel 12.0 Xml;HDR=NO\""
一切正常...