>>>> DataTable tbl = new DataTable(); >>>> using (OleDbConnection con = new OleDbConnection( >>>> "Provider=Microsoft.SQLSERVER.CE.OLEDB.3.5;"+ >>>> @"Data Source=C:\Program Files\Microsoft SQL Server Compact Edition\v3.5\Samples\northwind.sdf;")) >>>> { >>>> con.Open(); >>>> OleDbCommand cmd = con.CreateCommand(); >>>> cmd.CommandText = "select * from customers"; >>>> OleDbDataReader rdr = cmd.ExecuteReader(); >>>> tbl.Load(rdr); >>>> con.Close(); >>>> } >>>> >>>> DataTable usaCustomers = >>>> tbl.AsEnumerable() >>>> .Where(c => c.Field<string>("Country") == "USA") >>>> .CopyToDataTable(); >>>> >>>> DataTable ukCustomers = >>>> tbl.AsEnumerable() >>>> .Where(c => c.Field<string>("Country") == "UK") >>>> .CopyToDataTable(); >>>> >>>>// usaCustomers.Dump("USA"); >>>>// ukCustomers.Dump("UK"); >>>>Cetin
void Main() { string cstr = "Provider=SQLNCLI;"+ @"server=.\sqlexpress;trusted_connection=yes;database=northwind;"; DataSet ds1 = new DataSet(); OleDbDataAdapter da = new OleDbDataAdapter("select * from customers", cstr ); da.Fill(ds1,"Customers"); DataSet ds2 = new DataSet(); ds2.Tables.Add( ds1.Tables["Customers"].AsEnumerable() .Where(c => c.Field<string>("Country") == "USA") .CopyToDataTable()); ds2.Tables[0].TableName="usa"; ds2.Tables.Add( ds1.Tables["Customers"].AsEnumerable() .Where(c => c.Field<string>("Country") == "UK") .CopyToDataTable()); ds2.Tables[1].TableName = "uk"; ds2.Tables["usa"].Dump("USA"); ds2.Tables["uk"].Dump("UK"); }PS: CopyToDataTable() have overloads to load an existing DataTable but still I wouldn't use a DataSet unless if that is my only chance - for example using VFP as data backend I don't have an EF provider and have to resort using OleDb and datatables or Xml:)