64 ビット システムでプログラムを起動しているため、「Microsoft.Jet.OLEDB.4.0」プロバイダーの使用から「Microsoft.ACE.OLEDB.12.0」プロバイダーの使用に切り替えています。ACE が 64 ビット用の Jet に取って代わったことを理解しています使用する。
my に渡すクエリの構文は変更していませんがOleDbCommand
、例外が発生するようになりました。
「1 つ以上の必須パラメーターに値が指定されていません。」
コードは次のとおりです。
static void Main(string[] args)
{
const string connectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\\PimsImport\\PreciousStore\\imports;Extended Properties='Text;HDR=NO;IMEX=1'";
const string selectStatement = "SELECT F1 AS NameColumn FROM C:\\PimsImport\\PreciousStore\\imports\\PIMSPreciousbradypxx.csv";
using (var connection = new OleDbConnection(connectionString))
{
using (var cmd = new OleDbCommand(selectStatement, connection))
{
cmd.Connection.Open();
OleDbDataReader workbookReader = cmd.ExecuteReader(CommandBehavior.CloseConnection);
workbookReader.Close();
}
}
}
を削除して;F1
に置き換えると、*
それは正常に動作します。F1
しかし、私の csv にはヘッダーがないため、構文を使用して最初の列を取得したいと考えています。
これが機能しなくなった理由はありますか?