linq to dataset
// Fill the DataSet.
DataSet ds = new DataSet();
ds.Locale = CultureInfo.InvariantCulture;
FillDataSet(ds);DataTable contacts = ds.Tables["Contact"];
DataTable orders = ds.Tables["SalesOrderHeader"];var query =
    from contact in contacts.AsEnumerable()
    join order in orders.AsEnumerable()
    on contact.Field<Int32>("ContactID") equals
    order.Field<Int32>("ContactID")
    select new
        {
            ContactID = contact.Field<Int32>("ContactID"),
            SalesOrderID = order.Field<Int32>("SalesOrderID"),
            FirstName = contact.Field<string>("FirstName"),
            Lastname = contact.Field<string>("Lastname"),
            TotalDue = order.Field<decimal>("TotalDue")
        };
foreach (var contact_order in query)
{
    Console.WriteLine("ContactID: {0} "
                    + "SalesOrderID: {1} "
                    + "FirstName: {2} "
                    + "Lastname: {3} "
                    + "TotalDue: {4}",
        contact_order.ContactID,
        contact_order.SalesOrderID,
        contact_order.FirstName,
        contact_order.Lastname,
        contact_order.TotalDue);
}
如果只是判断存在的话,看最后结果的Count就OK了