少し問題があります。データベースとして csv ファイルを使用しており、ADO.NET の OLEDB 関数でそれを求めています。次のように、2 つのデータの間に列「DATA」が含まれる行のみを選択したい:
String conn = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\;
;Extended Properties='text;HDR=Yes;Format=Delimited(;)';";
OleDbConnection cn = new OleDbConnection(conn);
OleDbCommand cmd = new OleDbCommand("SELECT * FROM [mydb]", cn);
OleDbDataAdapter daAd = new OleDbDataAdapter();
daAd.SelectCommand= cmd;
cn.Open();
DataTable dt = new DataTable();
daAd.Fill(dt);
DateTime mydata= Convert.ToDateTime("01/01/1990");
DateTime mydata2= Convert.ToDateTime("01/01/2000");
今までは何も問題はありませんでしたが、私が変わると
"SELECT * FROM [mydb]"
と
"SELECT * FROM [mydb] WHERE DATA>= '"+ mydata.Date +"' AND DATA<='"+ mydata2.Date +"'
「クエリ 'WHERE DATA=> mydata AND DATA<= mydata2' に構文エラー (演算子がありません)」というエラーが表示されます。解決方法が本当にわかりません。詳細情報: .CSV ファイルは次のようにフォーマットされています。
DATA;INFO1;INFO2;INFO3
01/01/1990;1;2;3`
そしてschema.iniにはこれがあります:
[mydb.csv]
Format=Delimited(;)
ColNameHeader=True
DateTimeFormat=dd-MM-yyyy
Col1=DATA DateTime
Col2=info1 Long Width 3
Col3=info2 Integer
Col4=info3 Integer
編集: x86 Seven を実行しています。JET ドライバーの非互換性を解決するには、schema.ini ファイルで十分であると読みました。私が正しいことを願っています。