DevTrain Startseite Advanced Developers Conference vom 14.-15. Februar 2011  
  
  
SUCHEN:  
ARTIKEL ONLINE: 525   

Kategorien
.NET
Datenbanken
Web
XML

Allgemein
Camp
Foren
Events
Persönliche Einstellungen
Registrieren
Prämien Shop
Kontakt
Impressum
Über DevTrain

Autoren


   Autor: Tobi Ulm Artikel Drucken
        
Datenbanksuche mit dem ASP.NET DataReader

Was lernen Sie in diesem Sample:
- Wie man mit ADO.NET eine Datenbank Verbindung erzeugt
- Wie man mit ADO.NET ein ADOCommand benutzt
- Wie Sie mit dem DataReader arbeiten

Die Sample Seite soll es ermöglichen durch Eingabe eines Suchbegriffes in eine TextBox eine Tabelle zu durchsuchen.
Ich baue mir also eine ASPX Seite mit einer TextBox sowie einem Button:
<asp:TextBox id=TextBox1 runat="server" Width="162" Height="23"></asp:TextBox>
<asp:Button id=Button1 runat="server" Width="49" Height="21" Text="Go!">

Als nächstes bauen wir die Suche in der Datenbank.
Die Suche soll natürlich erst ausgeführt werden, nachdem die ASPX Seite neu geladen wurde und deshalb baue ich die DB Suche in den PagePostBack Event ein:

protected void Page_Load(object sender, EventArgs e)

{

if (!IsPostBack)

{

//

// Evals true first time browser hits the page

//

}

else
 {
  String strConn = "Provider= SQLOLEDB.1;DataSource=localhost;uid=sa; pwd=; Initial Catalog=pubs;";
  ADOConnection connSQL = new ADOConnection (strConn);
  ADOCommand adoCmd = new ADOCommand ("SELECT * FROM authors WHERE au_lname LIKE '" + TextBox1.Text + "%'", connSQL);
  ADODataReader drAuthors;
  try
  {
   connSQL.Open();
   adoCmd.Execute(out drAuthors);
   if (drAuthors != null)
   {
    Response.Write("<table cellspacing="2" cellpadding="2" border="2">");
    Response.Write("<tr><th>Vorname</th><th>Nachname</th></tr>");
    while (drAuthors.Read())
    {
     Response.Write("<tr><td>" + drAuthors["au_fname"].ToString() + "</td>");
     Response.Write("<td>" + drAuthors["au_lname"].ToString() + "</td></tr>");
    }
    Response.Write("</table>"); 
   }
   
  }
  catch (Exception d)
  {
   Response.Write(d.ToString());
  }
  finally
  {
   if (connSQL.State==DBObjectState.Open)
   {
    connSQL.Close();
   }
  } 
 }

Als erstes wird der ConnectionString für die Datenbank erzeugt, der dann anschließend dem neu erzeugten ADOConncetion Objekt übergeben wird. Diese ADOConnection ist meine Leitung zu Datenbank.
Nachdem ich nun eine Verbindung zu Datenbank habe brauche ich noch irgendwas, um Daten zurück zu bekommen. Aus diesem Grund brauche ich ein ADOCommand dem ich einen normalen SQL Query String übergebe.
Das Command wird hoffentlich richtig ausgeführt und ich muss nun ein Objekt erzeugen, in dem ich die Ergebnismenge irgendwie halten kann. Sie haben hier mit ADO.NET die Qual der Wahl: DataSet oder für einfaches visualisieren ohne Daten zu verändern den DataReader. Ich verwende letzteres da der DataReader seine Vorteile hat: Er ist einfach zu handhaben und benötigt weniger Speicher im Server als zum Beispiel das DataSet Objekt
Im try Block öffne ich nun die Verbindung zum Server und gebe dem ADOCommand meinen DataReader als das Objekt an, das die Daten zurück bekommen soll.

Nachdem die Daten erfolgreich übergeben worden sind gebe ich die Daten auf der Seite selbst aus. Das Iterrieren durch die Daten übernimmt an dieser Stelle der Befehl Read() des DataReader Objektes.
Ich gebe noch die Felder an die wir benötigen und fertig!


DevTrain Camp - Schneller zum .NET 3.5 Developer
 
Verwandte Artikel      Verlinkte Dokumente
    Keine verknüpften Dokumente
    Keine Links vorhanden

  Erfasst am: 21.05.2001
  Gültig bis: 20.06.2001
0 Ratings
Bewertung: 0,0%
schlecht    sehr gut  

 
© Copyright 2007 ppedv AG