You can execute LINQ query on DataTable Or Specific table on DataSet with the help of the AsEnumerable.
Here is example this might be helpful.
DataSet ds = new DataSet(); DataTable dt = new DataTable(); DataColumn dc; DataRow dr; ds.DataSetName = "products"; dt.TableName = "product"; dc = new DataColumn("product_id",long.MaxValue.GetType()); dt.Columns.Add(dc); dc = new DataColumn("product_name"); dt.Columns.Add(dc); dr = dt.NewRow(); dr["product_id"] = 1; dr["product_name"] = "Monitor"; dt.Rows.Add(dr); dr = dt.NewRow(); dr["product_id"] = 2; dr["product_name"] = "Mouse"; dt.Rows.Add(dr); dr = dt.NewRow(); dr["product_id"] = 3; dr["product_name"] = "KeyBoard"; dt.Rows.Add(dr); dr = dt.NewRow(); dr["product_id"] = 4; dr["product_name"] = "LCD"; dt.Rows.Add(dr); ds.Tables.Add(dt); IEnumerable<DataRow> objResult1 = from tbl in dt.AsEnumerable() where tbl.Field<long>(0) <= 2 select tbl; Response.Write("<b>Query Results 1</b>"); foreach (DataRow row in objResult1) { Response.Write(string.Format("<br/>Product ID: {0} , Product Name: {1}", row.Field<long>(0), row.Field<string>(1))); } IEnumerable<DataRow> objResult2 = from tbl in ds.Tables[0].AsEnumerable() let product_name = tbl.Field<string>(1) where product_name.StartsWith("Key") || product_name.StartsWith("Mo") select tbl; Response.Write("<br/><br/><b>Query Results 2</b>"); foreach (DataRow row in objResult2) { Response.Write(string.Format("<br/>Product ID: {0} , Product Name: {1}", row.Field<long>(0), row.Field<string>(1))); }
where?)