DevTrain

Autor: Bernhard Elbl

Master Detail Darstellung mit ASP.NET

Einer der meistverwendesten Punkte in modernen Web Applikationen ist die Darstellung von Daten aus Datenbank Systemen.
Dieser Artikel will Ihnen zeigen, wie Sie mit ASP.NET und C# :

1.) Daten auf einer ASP.NET seite visuallisieren und
2.) Detaildatensätze zu einem ausgewählten Datensatz anzeigen lassen

Generell werden alle Actions durch den Page_Load Eventhandler ausgeführt. Als allererstes frage ich ab, ob die Seite an den Server zurückgesendet wurde, oder ob sie zum ersten mal ausgeführt wird.Beim erstmaligen ausführen der Page wird die Funktion BindData() aufgerufen.

void BindData() // Function to retrieve and bind Data
{
       SQLConnectionmyConnection=newSQLConnection("server=localhost;uid=sa;pwd=;database=Northwind");
        SQLDataSetCommand myCommand = new SQLDataSetCommand("SELECT * FROM Customers", myConnection);

        try
  {
   DataSet ds = new DataSet();
   myCommand.FillDataSet(ds, "Customers");

   selMaster.DataSource = ds.Tables["Customers"].DefaultView;
   selMaster.DataTextField = "CompanyName";
   selMaster.DataValueField = "CustomerID";
   selMaster.DataBind();
  }  
 catch(Exception e)
  {
   lblErrorMsg.Text = "Fehler aufgetreten: " + e.ToString();
  }

}

 

Ich erzeuge als allererstes eine SQL Connection zu meinem SQL Server, danache baue ich mir ein SQLDataSetCommando mit dem ich mir alle Master (Haupt) Datensätze zurückgeben lasse. Als nächstes Binde ich die Ergebnismenge an meine ASP:DropDownBox und setze mit den Attributen selMaster.DataTextField den anzuzeigenden Text und mit selMaster.DataValueField den ValueWert, indem Fall die CustomerID.

Da in der DropDownList das Attribut AutoPostBack="True" gesetzt wurde wird automatisch die Seite an den Server zurückgepostet. In diesem Fall kommen wir wieder in den Page_Load Handler. Achtung: Jetzt ist Page.IsPostBack ist nun True.

String selectCmd = "SELECT * FROM ORDERS WHERE CustomerID = @CustomerID";

       SQLConnectionmyConnection=newSQLConnection("server=localhost;uid=sa;pwd=;database=Northwind");
        SQLDataSetCommand myCommand = new SQLDataSetCommand(selectCmd, myConnection);

        myCommand.SelectCommand.Parameters.Add(new SQLParameter("@CustomerID", SQLDataType.NChar, 10));
        myCommand.SelectCommand.Parameters["@CustomerID"].Value =  selMaster.SelectedItem.Value ;
 //lblErrorMsg.Text = selMaster.SelectedItem.Value;

        try
  {
   DataSet ds = new DataSet();
   myCommand.FillDataSet(ds, "Orders");
    
   MyDataGrid.DataSource= ds.Tables["Orders"].DefaultView;
   MyDataGrid.DataBind();
   
  }
  
  catch(Exception e)
  {
   lblErrorMsg.Text = "Fehler aufgetreten: " + e.ToString();
  }

Ich baue mir nun wieder ein SQLConnection und ein SQLDataSetCommand mit einer Where Bedingung und einem Parameter @CustomerID.
Ich erzeuge an dem SQLDataSetCommand einen Parameter den ich dann mit dem Value der DropDownBox fülle.
Zu guter letzt binde ich die Detail Datensätze an ein ASP:DataGrid und fertig ist die Master Detail Darstellung mit ASP.NET
    


Erfasst am: 06.01.2001 - Artikel-URL: http://www.devtrain.de/news.aspx?artnr=254
© Copyright 2003 ppedv AG - http://www.ppedv.de