ASP.NET údajov záväzné prehľad

Preklady článku Preklady článku
ID článku: 307860 - Zobraziť produkty, ktorých sa tento článok týka.
Tento článok odkazuje na nasledujúce Microsoft .NET Rámec triedy knižnica namespacey:
  • System.Data
  • System.Data.SqlClient
Rozbaliť všetko | Zbaliť všetko

Na tejto stránke

SUHRN

Tento článok poskytuje úvod do ASP.NET údajov záväzné.

Ďalšie prehľady ASP.NET, nájdete v nasledovných témach Článok databázy Microsoft Knowledge Base:
305140 ASP.NET plán

dalsie informacie

S viazania údajov ASP.NET, môžete zviazať akýkoľvek server ovládací na jednoduché vlastnosti, kolekcie, výrazy alebo metód. Ak použijete viazanie údajov, budete mať väčšiu flexibilitu pri použití údajov z databázy alebo inými prostriedkami.

Tento článok sa zaoberá nasledujúce záväzné údaje témy:

Údajov záväzné essentials

< % # %> Syntax

ASP.NET zavádza nové deklaratívne syntaxe, < % # % >. To syntax je základom pre pomocou dátovej väzby v .aspx stránky. Všetky viazania údajov výrazy musia byť obsiahnuté v týchto znakov. Nasledujúci zoznam obsahuje príklady jednoduchých údajov väzby z viacerých zdrojov:
  • Jednoduché vlastníctva (syntax pre zákazníka):
    <%# custID %>
    					
  • Kolekcia (syntax pre príkaz):
    <asp:ListBox id="List1" datasource='<%# myArray %>' runat="server">
    					
  • Výraz (syntax pre kontakt):
    <%# ( customer.First Name + " " + customer.LastName ) %>
    					
  • Metóda výsledok (syntax pre nedoplatku):
    <%# GetBalance(custID) %>
    					
V predchádzajúcich príkladoch, inline < % # %> Tagy uvedie, kde informácie zo špecifického zdroja údajov umiestnili v stránke .aspx. Nasledujúci príklad záväzné údaje využíva TextBox webový server ovládací prvok:
<asp:textbox id=txt text="<%# custID %>" runat=server />
				
Ďalšie informácie o syntaxe záväzné údaje, pozri nasledujúce .NET Rámec Software Development Kit (SDK) dokumentácia:
Syntax výrazu záväzné údaje
http://msdn2.Microsoft.com/en-us/library/bda9bbfx (vs.71) .aspx

Page.DataBind() versus Control.DataBind()

Po konkrétne dátové zdroje boli stanovené a nastaviť pre objekty na stránke .aspx, musí viazať údaje na týchto údajov zdrojov. Môžete použiť Page.DataBind alebo Control.DataBind metóda viazať údaje k zdrojom údajov.

Obaja metódy fungujú podobne. Hlavným rozdielom je, že všetky zdroje údajov sú viazané k ich ovládacie prvky servera po Page.DataBind metóda je volána. Žiadne údaje vykresľuje ku kontrole kým explicitne volať buď príkaze DataBind nie metóda webový server ovládací prvok alebo kým budete odvolávať Page-úrovni Page.DataBind metóda. Typicky, Page.DataBind (alebo príkaze DataBind nie) sa nazýva od Page_Load udalosti.

Ďalšie informácie o príkaze DataBind nie metóda, pozri nasledujúce .NET rámec SDK dokumentácia: Control.DataBind metóda
http://msdn.Microsoft.com/en-us/library/w5e5992d.aspx

Ovládacie prvky údajov-zviazal zoznam

Ovládacie prvky zoznamu sú špeciálne Web server ovládacie prvky, ktoré môžu viazať do kolekcie. Tieto ovládacie prvky môžete použiť na zobrazenie riadkov údajov v prispôsobené šablóny formáte. Všetky ovládacie prvky zoznamu vystaviť DataSource a DataMember vlastnosti, ktoré sa používajú na naviazanie na kolekcie.

Tieto ovládacie prvky môžete naviazať ich vlastnosť DataSource do kolekcie, ktorá podporuje IEnumerable, ICollectionalebo rozhranie IListSource .

Opakovač kontroly

Opakovač kontrola je templated, data-zviazal zoznam. Opakovač kontrola je "lookless"; nemá žiadne vstavané rozloženie alebo štýly. Preto musia výslovne vyhlásiť všetky rozloženie HTML, formátovanie a štýl značky v šablónach ovládacieho prvku.

Nasledujúce Ukážky kódu preukázať vyu?ívania jeden zoznam ovládací prvok Repeater , na zobrazenie údajov:

Poznámka: musíte zmeniť parametre pripojenie reťazec ako potrebné pre vaše prostredie.

Visual Basic .NET
<%@ Page Language="vb" %>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.SqlClient" %>

<script runat="server">
Sub Page_Load(sender As Object, e As EventArgs)

   Dim cnn As SqlConnection = New SqlConnection("server=(local);" & _
                                                "database=pubs;Integrated Security=SSPI")
   Dim cmd As SqlDataAdapter = New SqlDataAdapter("select * from authors", cnn)
   Dim ds As DataSet = New DataSet()
   cmd.Fill(ds)
   Repeater1.DataSource = ds
   Repeater1.DataBind()

End Sub
</script>
<html>
<body>
   <form id="Form1" method="post" runat="server">
      <asp:Repeater id="Repeater1" runat="server">
         <ItemTemplate>
         <%# DataBinder.Eval(Container.DataItem,"au_id") %><br>
	 </ItemTemplate>
      </asp:Repeater>
   </form>
</body>
</html>
				
Visual C# .NET
<%@ Page language="c#" %>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.SqlClient" %>

<script runat="server">
void Page_Load(Object sender, EventArgs e) 
{ 
   SqlConnection cnn = new 
       SqlConnection("server=(local);database=pubs;Integrated Security=SSPI"); 
   SqlDataAdapter da = new SqlDataAdapter("select * from authors", cnn); 
   DataSet ds = new DataSet(); 
   da.Fill(ds, "authors"); 
   Repeater1.DataSource = ds.Tables["authors"];
   Repeater1.DataBind();
}
</script>
<html>
<body>
   <form id="WebForm2" method="post" runat="server">
      <asp:Repeater id="Repeater1" runat="server">
         <ItemTemplate>
         <%# DataBinder.Eval(Container.DataItem,"au_id") %><br>
    	 </ItemTemplate>
      </asp:Repeater>
   </form>
</body>
</html>
				
Visual J# .NET
<%@ Page language="VJ#" %>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.SqlClient" %>

 <script runat="server">
void Page_Load(Object sender, EventArgs e) 
{ 
    SqlConnection cnn = new SqlConnection("server=(local);database=pubs;Integrated
         Security=SSPI"); 
    SqlDataAdapter da = new SqlDataAdapter("select * from authors", cnn); 
    DataSet ds = new DataSet(); 
    da.Fill(ds, "authors"); 
    DataTableCollection dtc = ds.get_Tables();
    int index = dtc.IndexOf("authors");
    Repeater1.set_DataSource(dtc.get_Item(index));
    Repeater1.DataBind();
}
</script>
<html>
<body>
   <form id="WebForm2" method="post" runat="server">
      <asp:Repeater id="Repeater1" runat="server">
         <ItemTemplate>
         <%# DataBinder.Eval(Container.DataItem,"au_id") %><br>
             </ItemTemplate>
      </asp:Repeater>
   </form>
</body>
</html>
				
Ďalšie informácie o opakovač kontroly, pozri nasledujúce .NET rámec SDK dokumentácia:
Repeater webový Server ovládací prvok
http://msdn.Microsoft.com/en-us/library/x8f2zez5.aspx

DataList ovládanie

DataList trieda je rys-bohatý, templated, data-zviazal zoznam. môžeš upraviť šablóny prispôsobiť tento ovládací prvok. Na rozdiel od opakovač kontroly DataList podporuje smerový vykresľovanie a voliteľne vykresľujú v HTML tabuľky v čase spustenia.

Ďalšie informácie o DataList kontrolu, pozri nasledujúce .NET rámec SDK dokumentácia:
DataList webový Server ovládací prvok
http://msdn.Microsoft.com/en-us/library/9cx2f3ks (VS.85) .aspx

Údajová mriežka kontrolu

Údajová mriežka kontrola je plne vybavený, multicolumn, data-zviazal mriežky. K prispôsobí rozloženie pre jednotlivé stĺpce v DataGrid, môžete nastaviť stĺpec typ "templated" a upraviť šablóny stĺpcov 's. Údajová mriežka kontrolu, môže spôsobiť bez šablóny, ktoré robí tento ovládací prvok ideálne pre vykazovanie scenáre. DataGrid podporuje aj výber, editácia, vymazanie, paging a zoraďovanie stĺpec a tlačidlo stĺpce.

Ďalšie informácie o údajová mriežka kontrolu, pozri nasledujúce .NET rámec SDK dokumentácia:
Údajová mriežka webový Server ovládací prvok
http://msdn.Microsoft.com/en-us/library/aa710742 (VS.71) .aspx

Prístup k údajom

Táto časť popisuje spôsob prístupu k údajom z databázy a údaje sa viažu na zozname kontrol. DataSet alebo DataReader triedy môžete použiť na získanie údajov z databázy.

Trieda DataSet

Množina údajov obsahuje úplné reprezentáciu údajov, vrátane tabuľky štruktúra, vzťahy medzi tabuľkami a objednávanie údaje. DataSet triedy sú dostatočne flexibilné na ukladanie akékoľvek informácie od databázy do súboru Extensible Markup Language (XML). Triedy DataSet sú bez štátnej príslušnosti; čiže môžete odovzdať tieto triedy od klienta na server neblokujete server pripojenia zdrojov. Nasledujúce kód demonštruje, ako používať DataSet údajov sa viažu na ovládací prvok:

Poznámka: musíte zmeniť parametre pripojenie reťazec ako potrebné pre vaše prostredie.

Visual Basic .NET
Dim cnn As SqlConnection = New SqlConnection("server=(local);" & _
                                             "database=pubs;Integrated Security=SSPI")
Dim cmd As SqlDataAdapter = New SqlDataAdapter("select * from authors", cnn)
Dim ds As DataSet = New DataSet()
cmd.Fill(ds)
MyRepeater.DataSource = ds
MyRepeater.DataBind() 
				
Visual C# .NET
SqlConnection cnn = new SqlConnection("server=(local);
                                       database=pubs;Integrated Security=SSPI"); 
SqlDataAdapter da = new SqlDataAdapter("select * from authors", cnn); 
DataSet ds = new DataSet(); 
da.Fill(ds);
MyRepeater.DataSource = ds;
MyRepeater.DataBind(); 
				
Visual J# .NET
SqlConnection cnn = new SqlConnection("server=(local);
                                       database=pubs;Integrated Security=SSPI"); 
SqlDataAdapter da = new SqlDataAdapter("select * from authors", cnn); 
DataSet ds = new DataSet(); 
da.Fill(ds); 
MyRepeater.set_DataSource(ds);
MyRepeater.DataBind();
				
Ďalšie informácie o triedy DataSet , pozri nasledujúce .NET rámec SDK dokumentácia:
Trieda DataSet
http://msdn2.Microsoft.com/en-us/library/System.data.DataSet (vs.71) .aspx

DataReader triedy

Naopak, ak potrebujete Zobraziť (a meniť) údaje ktoré je možné vykresliť, DataReader triedy môže byť lepšie riešenie. Napríklad, je lepšie použiť DataReader pre DropDownList ovládať, pretože DataReader je kurzorom premiestniteľným iba dopredu údajov. Nasledujúci kód demonštruje ako používať vyčistenia trieda údajov sa viažu na ovládací prvok:

Visual Basic .NET
Dim cnn As SqlConnection = New SqlConnection("server=(local);" & _
                                             "database=pubs;Integrated Security=SSPI")
Dim cmd As SqlCommand = New SqlCommand("select * from authors", cnn)

cnn.Open()
MyRepeater.DataSource = cmd.ExecuteReader(CommandBehavior.CloseConnection)
MyRepeater.DataBind()
				
Visual C# .NET
SqlConnection cnn = new SqlConnection("server=(local);
                                       database=pubs;Integrated Security=SSPI");
SqlCommand cmd = new SqlCommand("select * from authors", cnn);

cnn.Open();
MyRepeater.DataSource = cmd.ExecuteReader(CommandBehavior.CloseConnection);
MyRepeater.DataBind();
				
Visual J# .NET
SqlConnection cnn = new SqlConnection("server=(local);
                                       database=pubs;Integrated Security=SSPI"); 

SqlCommand cmd = new SqlCommand("select * from authors", cnn); 

cnn.Open();
MyRepeater.set_DataSource(cmd.ExecuteReader(CommandBehavior.CloseConnection));
MyRepeater.DataBind();
				
Ďalšie informácie o vyčistenia triedy a dátové pripojenie s ASP.NET, nájdete v nasledujúcich témach v .NET rámec SDK dokumentácia:
Vyčistenia triedy
http://msdn.Microsoft.com/en-us/library/System.data.sqlclient.sqldatareader.aspx

Vývoj ASP.NET aplikácií High-výkon
http://msdn2.Microsoft.com/en-us/library/5dws599a (vs.71) .aspx

Záväzné v šablóny zoznamov kontrolu

Môžete použiť šablóny v zozname kontrolách zviazať a na prispôsobiť individuálne záznamy zo zdroja údajov. Táto časť obsahuje tri metódy na to.

DataBinder.Eval metóda

Keď zdroj údajov pracuje s údajmi, ktorý sa vrátil z Databáza, zdroj údajov môže obsahovať početné kúsky informácií. môžeš generic DataBinder.Eval metódu použiť na vrátenie údajov. Nasledujúci kód vzorky, "au_id" pole je vrátené zo zdroja údajov objektu kontajnera:
<%# DataBinder.Eval(Container.DataItem,"au_id") %>
				
Ďalšie informácie o metóde DataBinder.Eval , pozri nasledujúce .NET rámec SDK dokumentácia:
DataBinder.Eval metóda
http://msdn.Microsoft.com/en-us/library/4hx47hfe.aspx

Explicitné casting

Ak potrebujete viac kontroly, použite explicitné casting. Jednoznačným Konverzia používa typ konverzie kľúčové slovo. Tieto kľúčové slová pôsobiť ako funkcie, ale kompilátor generuje kód inline. Vykonanie je preto mierne rýchlejší než s funkciou výzvu. Nasledujúci kód vzorky použite explicitné casting:

Visual Basic .NET
' DataTable as the DataSource
<%# CType(Container.DataItem, System.Data.DataRowView)("au_id") %>

' DataReader as the DataSource
<%# CType(Container.DataItem, System.Data.Common.DbDataRecord)("au_id") %>

' DataReader as the DataSource
<%# CType(Container.DataItem, System.Data.Common.DbDataRecord)(0) %>
				
Visual C# .NET
// DataTable as the DataSource
<%# ((System.Data.DataRowView)Container.DataItem)["au_id"] %> 

// DataReader as the DataSource
<%# ((System.Data.Common.DbDataRecord)Container.DataItem)["au_id"] %>

// DataReader as the DataSource
<%# ((System.Data.Common.DbDataRecord)Container.DataItem)[0] %>
				
Visual J# .NET
// DataTable as the DataSource
<%# ((System.Data.DataRowView)Container.DataItem)["au_id"] %> 

// DataReader as the DataSource
<%# ((System.Data.Common.DbDataRecord)Container.DataItem)["au_id"] %>

// DataReader as the DataSource
<%# ((System.Data.Common.DbDataRecord)Container.DataItem)[0] %>
				
Všimnite si, že predchádzajúce vzorky použitie buď DataTable, ktorá je podmnožinou množiny údajovalebo DataReader ako zdroj údajov.

ItemDataBound udalosť

Môžete tiež použiť ItemDataBound udalosti ovládacieho viazať údaje. Táto udalosť nastane, keď položka je údaje viazané na ovládací prvok. Nasledujúce vzorka kódu HTML definuje opakovač kontroly s ItemTemplate:
<asp:repeater id=rptr runat=server>
   <itemtemplate>
      <asp:label id=lblAuthorID runat=server />
   </itemtemplate>
</asp:repeater>
				
Nasledujúce metódy sú potrebné na vašu stránku:

Visual Basic .NET
public Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs)
  
   'TODO: Retrieve data from a database,
   'and bind the data to a list control.

End Sub

public Sub rptr_OnItemDataBound(ByVal sender As Object, _
ByVal e As System.Web.UI.WebControls.RepeaterItemEventArgs) Handles rptr.ItemDataBound
   Dim rec As DataRowView
   rec = e.Item.DataItem

   'Make sure that you have the data.
   If Not IsDBNull(rec) Then
      Dim l1 As Label
      l1 = e.Item.FindControl("lblAuthorID")
      l1.Text = rec("au_id").ToString()
   End If
End Sub
				
Visual C# .NET
public void Page_Init(object sender, System.EventArgs e)
{
   rptr.ItemDataBound += new RepeaterItemEventHandler(rptr_OnItemDataBound);
}
public void Page_Load(object sender, System.EventArgs e)
{
   // TODO: Retrieve data from a database,
   // and bind the data to a list control.
}
public void rptr_OnItemDataBound(object sender, RepeaterItemEventArgs e)
{
   System.Data.Common.DbDataRecord rec = (System.Data.Common.DbDataRecord)
                                          e.Item.DataItem;
   if(rec!=null) //Make sure that you have the data.
   {
      Label l1 = (Label)e.Item.FindControl("lblAuthorID");
      l1.Text = rec["au_id"].ToString();
   }
}
				
Visual J# .NET
public void Page_Init(Object sender, System.EventArgs e)
{
            rptr.add_ItemDataBound(new RepeaterItemEventHandler(rptr_OnItemDataBound));
}
private void Page_Load(Object sender, System.EventArgs e)
{
            // TODO: Retrieve data from a database,
            // and bind the data to a list control.
}
public void rptr_OnItemDataBound(Object sender, RepeaterItemEventArgs e)
{
            System.Data.Common.DbDataRecord rec = (System.Data.Common.DbDataRecord)
                                                   e.get_Item().get_DataItem();
            if (rec != null) //Make sure that you have the data.
            {
                        Label l1 = (Label)e.get_Item().FindControl("lblAuthorID");
                        l1.set_Text(((rec.get_Item("au_id")).ToString()));
            }
}
				

Vlastnosti

ID článku: 307860 - Posledná kontrola: 15. októbra 2012 - Revízia: 3.0
Informácie v tomto článku sa týkajú nasledujúcich produktov:
  • Microsoft ASP.NET 1.0
  • Microsoft Visual Basic .NET 2002 Standard Edition
  • Microsoft Visual C# .NET 2002 Standard Edition
  • Microsoft Visual J# .NET 2003 Standard Edition
  • Microsoft ASP.NET 1.1
  • Microsoft Visual Basic .NET 2003 Standard Edition
  • Microsoft Visual C# .NET 2003 Standard Edition
Kľúčové slová: 
kbarttyperoadmap kbdatabinding kbinfo kbservercontrols kbmt KB307860 KbMtsk
Strojovo preložené
DÔLEŽITÉ: Tento článok bol preložený pomocou softvéru na strojový preklad od spoločnosti Microsoft, nie prekladateľom. Spoločnosť Microsoft ponúka články preložené prekladateľmi aj strojovo preložené články, vďaka čomu máte možnosť prístupu ku všetkým článkom databázy Knowledge Base vo svojom jazyku. Strojovo preložený článok však nie je vždy perfektný. Môže obsahovať chyby týkajúce sa slovnej zásoby, syntaxe alebo gramatiky, podobne ako cudzinec môže robiť chyby, keď rozpráva vašim jazykom. Spoločnosť Microsoft nenesie zodpovednosť za akékoľvek nepresnosti, chyby alebo škody spôsobené akýmkoľvek nepresným prekladom obsahu alebo jeho použitím zo strany zákazníkov. Spoločnosť Microsoft softvér na strojový preklad pravidelne aktualizuje.
Pokiaľ chcete vidieť anglickú verziu článku, kliknite sem: 307860

Odošlite odozvu

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com