i ont la pièce de code suivante VB.NET:DataRelation à partir d'une seule requête
Dim conn As New MySql.Data.MySqlClient.MySqlConnection(ConnectionString)
conn.Open()
Dim sql = "SELECT * FROM users"
Dim com = New MySql.Data.MySqlClient.MySqlCommand(sql, conn)
Dim ds As New DataSet("dsUsers")
Dim da As New MySql.Data.MySqlClient.MySqlDataAdapter()
da.SelectCommand = com
da.TableMappings.Add("Table", "Users")
da.Fill(ds)
sql = "SELECT * FROM messages"
com = New MySql.Data.MySqlClient.MySqlCommand(sql, conn)
Dim da2 As New MySql.Data.MySqlClient.MySqlDataAdapter()
da2.SelectCommand = com
da2.TableMappings.Add("Table", "Messages")
da2.Fill(ds)
Dim dr As DataRelation
Dim col1 As DataColumn
Dim col2 As DataColumn
col1 = ds.Tables("Users").Columns("id")
col2 = ds.Tables("Messages").Columns("users_id")
dr = New DataRelation("UsersMessages", col1, col2)
ds.Relations.Add(dr)
Fondamentalement, j'exécute deux requêtes: le premier va chercher tous les utilisateurs, le second tous les messages. Je définis deux tables dans un DataSet et les lient à travers une DataRelation afin que la table Users soit un parent de la table Messages.
Cela fonctionne si je veux sélectionner toutes les lignes des deux tables, mais que faire si j'ai une structure plus complexe avec 4 tables imbriquées et des requêtes conditionnelles?
SELECT t1.*, t2*, t3.*, t4.*
FROM table1 t1, table2 t2, table3 t3, table4 t4
WHERE t1.id = 3
AND t2.t1_id = t1.id
AND t3.t2_id = t2.id
AND t4.t3_id = t3.id
Comment puis-je créer un DataSet avec quatre tables et les trois DataRelations de cette seule requête?
Merci