using (OleDbConnection conn = new OleDbConnection(connectionString)) {
conn.Open();
string[] orderIds = new string[] {
"10248", "10249", "10250", "10251", "10252", "10253", "10254", "10255", "10256", "10257", "10258", "10259", "10260", "10261", "10262",
"10263", "10264", "10265", "10266", "10267", "10268", "10269", "10270", "10271", "10272", "10273", "10274", "10275", "10276", "10277",
"10278", "10279", "10280", "10281", "10282", "10283", "10284", "10285", "10286", "10287", "10288", "10289", "10290", "10291", "10292",
"10293", "10294", "10295", "10296", "10297", "10298", "10299", "10300", "10301", "10302", "10303", "10304", "10305", "10306", "10307",
"10308", "10309", "10310", "10311", "10312", "10313", "10314", "10315", "10316", "10317", "10318", "10319", "10320", "10321", "10322",
"10323", "10324", "10325", "10326", "10327", "10328", "10329", "10330", "10331", "10332", "10333", "10334", "10335", "10336", "10337",
"10338", "10339", "10340", "10341", "10342", "10343", "10344", "10345", "10346", "10347", "10348", "10349", "10350", "10351", "10352",
"10353", "10354", "10355", "10356", "10357", "10358", "10359", "10360", "10361", "10362", "10363", "10364", "10365", "10366", "10367",
"10368", "10369", "10370", "10371", "10372", "10373", "10374", "10375", "10376", "10377", "10378", "10379", "10380", "10381", "10382",
"10383", "10384", "10385", "10386", "10387", "10388", "10389", "10390", "10391", "10392", "10393", "10394", "10395", "10396", "10397",
"10398", "10399", "10400", "10401", "10402", "10403", "10404", "10405", "10406", "10407"
};
DataTable dt = new DataTable();
string sql = @"
select *
from Orders o
inner join {0} t on o.OrderId = t.OrderId
";
string tempTableFullPath = Path.ChangeExtension(Path.GetTempFileName(), "dbf");
using (OleDbCommand cmd = conn.CreateCommand()) {
cmd.CommandText = string.Format("create table \"{0}\" free (OrderId I)", tempTableFullPath);
cmd.ExecuteNonQuery();
for (int index = 0, total = orderIds.Length; index < total; index++) {
cmd.CommandText = string.Format("insert into \"{0}\" values({1})", tempTableFullPath, orderIds[index]);
cmd.ExecuteNonQuery();
}
}
OleDbDataAdapter da = new OleDbDataAdapter(string.Format(sql, tempTableFullPath), conn);
da.Fill(dt);
da.Dispose();
}