ASP.NET date obligatorii de ansamblu

Traduceri articole Traduceri articole
ID articol: 307860 - View products that this article applies to.
Acest articol se referă la următoarele Microsoft .NET Cadru biblioteca clasa spații de nume:
  • System.Data
  • System.Data.SqlClient
Măriți totul | Reduceți totul

În această pagină

Rezumat

Acest articol oferă o introducere date ASP.NET obligatoriu.

Pentru suplimentare ASP.NET sumarele detaliate, consultați următoarele Articol din bază de cunoștințe Microsoft:
305140 Foaia de parcurs ASP.NET

Informații suplimentare

Cu legare date ASP.NET, puteți lega orice control server proprietăți la simplu, colecții, expresii și metode. Atunci când utilizați date obligatorii, aveți mai multă flexibilitate atunci când utilizați date dintr-o bază acoperire de date sau alte mijloace.

Acest articol adrese obligatoriu următoarele date subiecte:

Essentials de legare date

< % # %> Sintaxa

ASP.NET introduce o noua sintaxă declarativ, < % # % >. Acest lucru Sintaxa este baza pentru utilizarea datelor obligatorii într-o pagina .aspx. Toate datele obligatorii expresii trebuie să fie conținute în aceste caractere. Următoarea listă include exemple de legare date simple din surse multiple:
  • Simplu de proprietate (sintaxa pentru un client):
    <%# custID %>
    					
  • Colectia (sintaxa pentru o ordine):
    <asp:ListBox id="List1" datasource='<%# myArray %>' runat="server">
    					
  • Expresia (sintaxa pentru o persoană de contact):
    <%# ( customer.First Name + " " + customer.LastName ) %>
    					
  • Metoda rezultatul (sintaxa pentru soldul neonorat):
    <%# GetBalance(custID) %>
    					
În exemplele precedente, inline < % # tags %> indică în cazul în care informa?iile dintr-o sursă acoperire de date specifice este să fie plasate în pagina .aspx. Date obligatorii exemplul următor utilizează un control casetă text Web server:
<asp:textbox id=txt text="<%# custID %>" runat=server />
				
Pentru mai multe informații despre sintaxa de legare date, consultați următoarele .NET Cadru Software Development Kit (SDK) documentație:
Date obligatorii expresia Syntax
http://msdn2.Microsoft.com/en-us/library/bda9bbfx (vs.71) .aspx

Page.DataBind() comparativ cu Control.DataBind()

După sursele acoperire de date special au fost determinate și setați pentru obiecte pe pagina .aspx, trebuie să legați datele la aceste date surse. Puteți utiliza metoda Control.DataBind sau Page.DataBind se leagă datele de surse acoperire de date.

Ambele metode de lucru în mod similar. Principala diferență este că toate sursele acoperire de date sunt obligate metoda se numește lor controale server după Page.DataBind . Nu există date este redat la controlul până când apel sosit explicit fie DataBind metoda de control de server Web sau până când se invoca metoda Page.DataBind nivel de pagină. De obicei, Page.DataBind (sau DataBind) este numit la Evenimentul Page_Load .

Pentru mai multe informații despre metoda DataBind , consultați documentația SDK de Framework .NET următoarele: Metoda Control.DataBind
http://msdn.Microsoft.com/en-us/library/w5e5992d.aspx

Controalele listă de legare acoperire de date

Controalele listă sunt server web controale speciale care pot lega pentru colectii. Puteți utiliza aceste controale pentru a afișa rânduri acoperire de date într-o format șablon particularizat. Toate controalele listă expune sursa acoperire de date și proprietăți DataMember , care sunt folosite pentru a lega la colecții.

Aceste controale pot lega lor proprietatea DataSource la orice colecție care acceptă IEnumerable, ICollectionsau interfața IListSource .

Repetor de control

Repetor de control este o listă de templated, legare acoperire de date. Repetor de control este "lookless;", it does nu have orice clădire-înăuntru aspect sau stiluri. Prin urmare, vă trebuie să declare în mod explicit toate HTML aspect, formatarea și Tag-uri stil în șabloane de control.

Următoarele mostre de cod demonstra cum se poate utiliza un control listă, repetor de control, pentru a afișa date:

Notă: trebuie să modificați parametrii din ?irul de conexiune ca necesare pentru mediul dvs.

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>
				
Pentru mai multe informații despre controlul repetor , consultați documentația SDK de Framework .NET următoarele:
Control Server Web repetor
http://msdn.Microsoft.com/en-us/library/x8f2zez5.aspx

Controlul dataList

Clasa DataList este o Listă tabel de feature-bogat, templated, legare acoperire de date. poți modificați șabloane pentru a personaliza acest control. Spre deosebire de repetor de control, DataList acceptă În redare direcționale și opțional poate face într-un Tabel HTML la momentul execuției.

Pentru mai multe informații despre controlul DataList , consultați documentația SDK de Framework .NET următoarele:
DataList server web Control
http://msdn.Microsoft.com/en-us/library/9cx2f3ks (VS.85) .aspx

DataGrid control

DataGrid control este un complet featured, multicoloană, legare acoperire de date grid. Pentru a Personalizați aspect de coloane individuale din DataGrid, puteți seta tipul de coloană pentru a "templated" și modifica șabloane de coloană pe. DataGrid control pot face fără template-uri, ceea ce face acest control ideal pentru scenarii de raportare. DataGrid , de asemenea, sprijină selecție, editare, ștergere, paginare și sortarea de coloană și coloane de buton.

Pentru mai multe informații despre DataGrid control, consultați documentația SDK de Framework .NET următoarele:
Control de Server DataGrid Web
http://msdn.Microsoft.com/en-us/library/aa710742 (VS.71) .aspx

Accesarea datelor

Această sec?iune descrie cum se accesează date dintr-o bază acoperire de date și leagă datele de controale listă. Puteți utiliza setul acoperire de date sau DataReader clasa pentru a obține date dintr-o bază acoperire de date.

Setul acoperire de date de clasă

Un set acoperire de date conține o reprezentare completă a datelor, inclusiv tabelul structură, relațiile dintre tabele și ordonarea datelor. Clase de setul acoperire de date sunt suficient de flexibile pentru a stoca orice fel de informații de la o bază acoperire de date la un fișier de tip limbaj XML (Extensible Markup Language) (XML). Setul acoperire de date clase sunt apatride; Asta este, se poate trece aceste clase de client server fără legarea resurse de conexiune la server. Următoarele cod demonstrează cum se utilizează un DataSet se leagă datele la un control:

Notă: trebuie să modificați parametrii din ?irul de conexiune ca necesare pentru mediul dvs.

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();
				
Pentru mai multe informații despre clasa de setul acoperire de date , consultați documentația SDK-ul .NET Framework următoarele:
Setul acoperire de date de clasă
http://msdn2.Microsoft.com/en-us/library/System.data.DataSet (vs.71) .aspx

DataReader clasa

Invers, dacă trebuie doar să afișa (și nu se schimba) datele care este de a fi prestate, o clasă de DataReader poate fi o soluție mai bună. De exemplu, este mai bine să utilizați o DataReader pentru o DropDownList de control deoarece DataReader este un cursor acoperire de date forward-only. Următorul cod demonstrează cum să utilizați o clasă SqlDataReader se leagă datele la un control:

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();
				
Pentru mai multe informații despre accesul SqlDataReader clasa și date cu ASP.NET, consultați următoarele teme în documentația .NET Framework SDK:
SqlDataReader clasa
http://msdn.Microsoft.com/en-us/library/System.data.sqlclient.SqlDataReader.aspx

Dezvoltarea de înaltă performanță aplicatii ASP.NET
http://msdn2.Microsoft.com/en-us/library/5dws599a (vs.71) .aspx

Obligatoriu în Listă tabel de control șabloane

Puteți utiliza șabloane în controalele listă a lega și a Particulariza?i înregistrările individuale sursa acoperire de date. Această secțiune include trei metode de a face acest lucru.

Metoda DataBinder.Eval

Când sursa acoperire de date lucrează cu date care este returnat de o baza acoperire de date, sursa acoperire de date poate conține numeroase piese de informații. poți utilizați metoda DataBinder.Eval generice pentru a reveni acoperire de date. În următoarea mostră de cod, "au_id" câmp este întors de la sursa acoperire de date a obiectului recipient:
<%# DataBinder.Eval(Container.DataItem,"au_id") %>
				
Pentru mai multe informații despre metoda DataBinder.Eval , consultați documentația SDK de Framework .NET următoarele:
Metoda DataBinder.Eval
http://msdn.Microsoft.com/en-us/library/4hx47hfe.aspx

Turnare explicite

Dacă aveți nevoie de mai mult control, utilizați turnare explicite. O explicită conversie utilizează un cuvânt cheie de conversie de tip. Aceste cuvinte cheie acționa ca funcții, dar compilator generează inline cod. Prin urmare, executarea este ușor mai rapid decât cu o funcție de apel sosit. Următoarele eșantioane de cod utilizați turnare explicită:

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] %>
				
Rețineți că precedent probe utilizarea fie un DataTable, care este un subset al unui set acoperire de date, sau DataReader ca sursă acoperire de date.

ItemDataBound eveniment

Puteți utiliza, de asemenea, evenimentul ItemDataBound de control se leagă datele. Acest eveniment se produce atunci când un element este legat la control acoperire de date. Următoarea mostră de cod HTML definește un repetor de control cu un ItemTemplate:
<asp:repeater id=rptr runat=server>
   <itemtemplate>
      <asp:label id=lblAuthorID runat=server />
   </itemtemplate>
</asp:repeater>
				
Următoarele metode sunt necesare în pagina dvs.:

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()));
            }
}
				

Proprietă?i

ID articol: 307860 - Ultima examinare: 15 octombrie 2012 - Revizie: 1.0
Se aplică la:
  • 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
Cuvinte cheie: 
kbarttyperoadmap kbdatabinding kbinfo kbservercontrols kbmt KB307860 KbMtro
Traducere automată
IMPORTANT: Acest articol a fost tradus de software-ul de traducere automată Microsoft, si nu de un traducător. Microsoft vă oferă atât articole traduse de persoane, cât și articole traduse automat, astfel incat aveti access la toate articolele din Baza noastră de informatii în limba dvs. materna. Totuși, un articol tradus automat nu este întotdeauna perfect. Acesta poate conține greșeli de vocabular, sintaxă sau gramatică, la fel cum un vorbitor străin poate face greșeli vorbind limba dvs. materna. Compania Microsoft nu este responsabilă pentru nici o inexactitate, eroare sau daună cauzată de traducerea necorespunzătoare a conținutului sau de utilizarea traducerii necorespunzătoare de către clienții nostri. De asemenea, Microsoft actualizează frecvent software-ul de traducere automată.
Face?i clic aici pentru a vizualiza versiunea în limba engleză a acestui articol: 307860

Trimite?i feedback

 

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