Archief - ASP.NET datasets mergen in gridview

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

Dolf de Wolf

Legacy Member
Hey,
ik ben vandaag begonnen aan een kleine app waarbij ik graag 2 datasets zou willen combineren in 1 gridview
1 dataset bevat informatie over project (2 kolommen)
Code:
public DataTable GetProjectInfo(int projectId)
    {
        using (MySqlConnection oConn = new MySqlConnection(_connectionString))
        {

            string sqlString = "select p.project, p.startdatum from taak t, project p where p.projectID = @projectId group by p.project;";
            MySqlDataAdapter oDa = new MySqlDataAdapter(sqlString, oConn);
            oDa.SelectCommand.Parameters.Add("@projectId",MySqlDbType.UInt32).Value = projectId;
            DataSet oDs = new DataSet();
            oDa.Fill(oDs, "ProjectInfo");
            return oDs.Tables["ProjectInfo"];


        }
    }


de andere dataset bevat de totale duur (1 kolom)

Code:
public DataTable GetDuur(int projectId)
    {
        using (MySqlConnection oConn = new MySqlConnection(_connectionString))
        {

            string sqlString = "select sum(t.duur) as duur from taak t, project p where p.projectID = @projectId and t.iteratieID in(SELECT i.iteratieID  FROM iteratie i where i.projectID = @projectId and i.iteratie in (1,2,3))group by p.project;";
            MySqlDataAdapter oDa = new MySqlDataAdapter(sqlString, oConn);
            oDa.SelectCommand.Parameters.Add("@projectId", MySqlDbType.UInt32).Value = projectId;
            DataSet oDs = new DataSet();
            oDa.Fill(oDs, "Duur");
            return oDs.Tables["Duur"];
            
        }
    }

in de page load staat dit

Code:
        DataSet ds = new DataSet();

        DataTable project = ProjectFacade.GetProjectInfo(1);
       
        DataTable duur = ProjectFacade.GetDuur(1);

        ds.Tables.Add(project.Copy());
        ds.Tables.Add(duur.Copy());

        GridView1.DataSource = ds.Tables;
        GridView1.DataBind();

Nu zou ik graag deze 2 sets combineren in 1 gridview en de tabellen mooi naast elkaar laten vallen. Maar als ik dit test krijg ik dit in mijn browser te zien
foutasp.JPG



kzit hopeloos vast, iemand die kan helpen?

Alvast Bedankt

AsinuS

Legacy Member
Maak een klasse Projecten met properties voor de velden die je wenst te tonen. Declareer een nieuwe generic list van je net aangemaakte klasse. Overloop je datasets en maak je object aan, voeg ze toe aan je lijst en databind deze aan je gridview.

Je kan uiteraard ook je query aanpassen zodat je maar 1 dataset terugkrijgt ;)

grtz

Dolf de Wolf

Legacy Member
ok, heb nu mijn query aangepast zodat ik maar 1 sqlstring hoef te gebruiken. Maar ik werk met mappers dus ik krijg een projectnaam en startdatum terug die op dat projectobject "gemapt" worden, maar de duur is geen attribuut van project maar van taak. Hoe kan ik dus combineren dat men oReader naam, startdatum (project), duur project (taken) direct juist mapt in één methode (mapper) ?

(ik denk dat ik gewoon te ver aan het zoekenben op iets easy)

Alvast bedankt
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan