Вот пример из одного из моих классов
// create the relationship between Booking and Booking_MNI
DataRelation relBookingMNI;
relBookingMNI = new DataRelation("BookingToBookingMNI",dsBooking.Tables["Booking"].Columns["Record_Id"],dsBooking.Tables["Booking_MNI"].Columns["booking_record_id"]);
dsBooking.Relations.Add(relBookingMNI);
dsBooking - это мой основной набор данных, который содержит 2 таблицы Booking и Booking_MNI.
Где Record_Id является первичным ключом, а booking_record_id является внешним ключом
Я изменил код ниже, чтобы соответствовать моему первому примеру. Но я думаю, это то, что вы ищете. В нашем производственном коде это приведет к появлению символа «+» слева от строки, что позволит вам углубиться в связанную таблицу. Я снова взял рабочий код и сделал его похожим на первый пример, поэтому я не знаю, скомпилируется ли он, но он должен заставить вас двигаться в правильном направлении.
DataTable dtBooking = ds.Tables[0];
DataTable dtBooking_MNI = ds.Tables[1];
dtBooking.PrimaryKey = new DataColumn[] {dtBooking.Columns["Record_Id"]};
dtBooking_MNI.PrimaryKey = new DataColumn[] {dtBooking_MNI.Columns["booking_Record_Id"]};
/* Setup DataRelation between the DataTables */
DataColumn[] dcBookingColsArray = new DataColumn[1] {dtBooking.Columns["Record_Id"]};
DataColumn[] dcBookingMNIColsArray = new DataColumn[1] {dtBooking_MNI.Columns["booking_record_Id"]};
DataRelation relBooking_To_MNI = new DataRelation("Booking_To_MNI",dcBookingColsArray,dcBookingMNIColsArray);
ds.Relations.Add(relBooking_To_MNI_Units);
// grid where you want to display the relationship
grdBooking.DataSource = ds;