我在.NET中的DataSet中有兩個表。我想加入他們的ID列。然後我想要一個DataGridView顯示第一個表中的兩列和第二個表中的一列。在.NET DataSet中連接表以在DataGridView中顯示
如果更容易,兩個表之間的關係是一對一的。
可以這樣做嗎?
我在.NET中的DataSet中有兩個表。我想加入他們的ID列。然後我想要一個DataGridView顯示第一個表中的兩列和第二個表中的一列。在.NET DataSet中連接表以在DataGridView中顯示
如果更容易,兩個表之間的關係是一對一的。
可以這樣做嗎?
那麼,它是隻讀嗎?在.NET 3.5/C#3.0,你也許可以使用LINQ加入,一個匿名的輸出類型很容易:
DataTable left = new DataTable
{
Columns = { {"PK", typeof(int)}, {"Name", typeof(string)}},
Rows = {{1,"abc"},{2,"def"}}
}, right = new DataTable
{
Columns = { { "FK", typeof(int) }, { "Value", typeof(decimal) } },
Rows = { { 1, 123.45M }, { 2, 678.9M } }
};
var qry = from x in left.Rows.Cast<DataRow>()
join y in right.Rows.Cast<DataRow>()
on x.Field<int>("PK") equals y.Field<int>("FK")
select new
{
Name = x.Field<string>("Name"),
Value = y.Field<decimal>("Value")
};
var data = qry.ToList();
然後,您可以綁定到「姓名」和數據的「價值」。請注意,鍵入的數據集更容易,因爲您可能會丟失Cast<>
和Field<>
垃圾。
爲什麼不使用設計師? 你把兩個表中的數據集,建立關係,並改變填充/ Get方法,對這樣的事情(與「內部加盟」):
SELECT Productos.idProducto, Productos.Nombre ,Precios.Precio, Tiendas.idTienda, Zonas.Zona,Productos.idZona FROM
PRODUCTOS INNER JOIN Precios ON Productos.idProducto = Precios.idProducto