ASP.NET d? li?u gi?i h?n trên T?ng quan

D?ch tiêu đ? D?ch tiêu đ?
ID c?a bài: 307860 - Xem s?n ph?m mà bài này áp d?ng vào.
Bài vi?t này đ? c?p đ?n Microsoft .NET sau Không gian tên thư vi?n l?p khuôn kh?:
  • System.Data
  • System.Data.SqlClient
Bung t?t c? | Thu g?n t?t c?

? Trang này

Tóm t?t

Bài vi?t này cung c?p m?t gi?i thi?u v? d? li?u ASP.NET gi?i h?n trên.

Cho thêm ASP.NET overviews, h?y xem m?c sau Bài vi?t cơ s? ki?n th?c Microsoft:
305140 L? tr?nh ASP.NET

Thông tin thêm

V?i ASP.NET d? li?u gi?i h?n trên, b?n có th? gi?i h?n trên b?t k? đi?u khi?n máy ch? đ? đơn gi?n tài s?n, b? sưu t?p, bi?u th?c và phương pháp. Khi b?n s? d?ng d? li?u gi?i h?n trên, b?n có s? linh ho?t hơn khi b?n s? d?ng các d? li?u t? b? máy cơ s? d? li?u ho?c Các phương ti?n khác.

Bài vi?t này đ?a ch? các gi?i h?n trên sau d? li?u ch? đ?:

D? li?u gi?i h?n trên essentials

< % # %> Cú pháp

ASP.NET gi?i thi?u m?t cú pháp m?i h?a, < % # % >. Đi?u này cú pháp là cơ s? cho vi?c s? d?ng d? li?u gi?i h?n trên trong m?t trang .aspx. T?t c? d? li?u gi?i h?n trên bi?u th?c ph?i đư?c ch?a trong các kí t? đ?i di?n. Danh sách sau đây bao g?m các ví d? c?a d? li?u đơn gi?n gi?i h?n trên t? nhi?u ngu?n khác nhau:
  • B?t đ?ng s?n đơn gi?n (cú pháp cho m?t khách hàng):
    <%# custID %>
    					
  • B? sưu t?p (cú pháp cho m?t đơn đ?t hàng):
    <asp:ListBox id="List1" datasource='<%# myArray %>' runat="server">
    					
  • Bi?u hi?n (cú pháp cho m?t s? liên l?c):
    <%# ( customer.First Name + " " + customer.LastName ) %>
    					
  • Phương pháp các k?t qu? (cú pháp cho s? cân b?ng xu?t s?c):
    <%# GetBalance(custID) %>
    					
Trong ví d? trư?c, inline < % # %> tags ch? ra nơi các thông tin t? m?t ngu?n c? th? d? li?u là đ? đư?c đ?t trong Trang .aspx. Ví d? sau liên k?t d? li?u s? d?ng m?t đi?u khi?n h?p máy ch? Web:
<asp:textbox id=txt text="<%# custID %>" runat=server />
				
Đ? bi?t thêm chi ti?t v? d? li?u gi?i h?n trên cú pháp, xem sau .NET Khuôn kh? Kit phát tri?n ph?n m?m (SDK) tài li?u:
D? li?u gi?i h?n trên bi?u hi?n cú pháp
.aspx http://msdn2.Microsoft.com/en-US/Library/bda9bbfx (vs.71)

Page.DataBind() so v?i Control.DataBind()

Sau khi các ngu?n d? li?u c? th? đ? đư?c xác đ?nh và thi?t l?p cho các đ?i tư?ng trong .aspx trang, b?n ph?i liên k?t d? li?u v?i nh?ng d? li?u này ngu?n. B?n có th? s? d?ng các Page.DataBind ho?c phương pháp Control.DataBind liên k?t d? li?u v?i các ngu?n d? li?u.

C? hai phương pháp làm vi?c tương t?. S? khác bi?t chính là r?ng t?t c? các ngu?n d? li?u b? gi?i h?n trên đ? đi?u khi?n máy ch? c?a h? sau khi Page.DataBind phương pháp đư?c g?i là. Không có d? li?u đư?c tr? l?i đ? ki?m soát cho đ?n khi b?n r? ràng g?i phương pháp DataBind ho?c ki?m soát Máy ch? Web ho?c cho đ?n khi b?n g?i các Các phương pháp Page.DataBind c?p trang. Thông thư?ng, các Page.DataBind (ho?c DataBind) đư?c g?i là t? các Page_Load s? ki?n.

Đ? bi?t thêm chi ti?t v? phương pháp DataBind , xem tài li?u Khuôn kh? .NET SDK sau đây: Phương pháp Control.DataBind
http://MSDN.Microsoft.com/en-US/Library/w5e5992d.aspx

Danh sách gi?i h?n trên d? li?u đi?u khi?n

Các danh sách đi?u khi?n là đ?c bi?t đi?u khi?n Máy ch? Web có th? gi?i h?n trên b? sưu t?p. B?n có th? s? d?ng các đi?u khi?n đ? hi?n th? các hàng d? li?u trong m?t đ?nh d?ng tùy ch?nh m?u. T?t c? danh sách đi?u khi?n ti?p xúc v?i DataSource và các tính ch?t DataMember , đư?c s? d?ng đ? liên k?t v?i các b? sưu t?p.

Các đi?u khi?n có th? gi?i h?n trên DataSource tài s?n c?a h? vào b?t k? b? sưu t?p h? tr? IEnumerable, ICollection, ho?c giao di?n IListSource .

L?p l?i đi?u khi?n

Ki?m soát Repeater là m?t danh sách giao, d? li?u gi?i h?n trên. Ki?m soát l?p l?i là "lookless;" có ngh?a là, nó không có b?t k? đư?c xây d?ng trong b? trí ho?c phong cách. V? v?y, b?n ph?i r? ràng tuyên b? t?t c? HTML b? trí, đ?nh d?ng, và phong cách th? trong đi?u khi?n m?u.

Sau đây m? m?u ch?ng minh làm th? nào b?n có th? s? d?ng m?t đi?u khi?n danh sách, ki?m soát dân s? l?p l?i đ? hi?n th? d? li?u:

Lưu ?: b?n ph?i thay đ?i các tham s? c?a chu?i k?t n?i như c?n thi?t cho môi trư?ng c?a b?n.

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>
				
Đ? bi?t thêm chi ti?t v? ki?m soát l?p l?i , h?y xem tài li?u Khuôn kh? .NET SDK sau đây:
L?p l?i đi?u khi?n Máy ch? Web
http://MSDN.Microsoft.com/en-US/Library/x8f2zez5.aspx

Ki?m soát dataList

Các l?p h?c DataList là m?t danh sách tính năng phong phú, giao, d? li?u gi?i h?n trên. B?n có th? S?a đ?i các m?u đ? tùy ch?nh các đi?u khi?n này. Không gi?ng như ki?m soát Repeater , DataList h? tr? th? hi?n hư?ng và có th? tùy ch?n Hi?n th? trong m?t HTML b?ng t?i th?i gian ch?y.

Đ? bi?t thêm chi ti?t v? ki?m soát DataList , xem tài li?u Khuôn kh? .NET SDK sau đây:
Đi?u khi?n Máy ch? Web c?a dataList
.aspx http://MSDN.Microsoft.com/en-US/Library/9cx2f3ks (VS.85)

Đi?u khi?n DataGrid

Đi?u khi?n DataGrid là m?t m?ng lư?i đ?y đ? tính năng, multicolumn, d? li?u gi?i h?n trên. Đ? tùy ch?nh b? trí c?a t?ng c?t trong DataGrid, b?n có th? thi?t l?p các lo?i c?t đ? "giao" và s?a đ?i các c?t c?a m?u. Đi?u khi?n DataGrid có th? khi?n mà không có m?u, mà làm cho các đi?u khi?n này l? tư?ng đ? báo cáo các t?nh hu?ng. DataGrid c?ng h? tr? l?a ch?n, ch?nh s?a, xóa, phân trang, và phân lo?i b?i c?t và nút ch?n m?t c?t.

Đ? bi?t thêm chi ti?t v? đi?u khi?n DataGrid , xem tài li?u Khuôn kh? .NET SDK sau đây:
DataGrid Web Server ki?m soát
.aspx http://MSDN.Microsoft.com/en-US/Library/aa710742 (VS.71)

Truy c?p vào d? li?u

Ph?n này mô t? làm th? nào đ? truy c?p d? li?u t? b? máy cơ s? d? li?u và liên k?t d? li?u v?i các danh sách đi?u khi?n. B?n có th? s? d?ng s? li?u ho?c DataReader l?p đ? có đư?c d? li?u t? b? máy cơ s? d? li?u.

S? li?u l?p

M?t b? d? li?u có ch?a m?t đ?i di?n đ?y đ? c?a d? li?u, bao g?m c? b?ng c?u trúc, các m?i quan h? gi?a các b?ng, và đ?t hàng c?a d? li?u. S? li?u l?p đư?c linh ho?t, đ? đ? lưu tr? b?t k? h?nh th?c nào c?a các thông tin t? b? máy cơ s? d? li?u vào m?t t?p tin m? r?ng đánh d?u ki?m ngôn ng? (XML). S? li?u l?p đư?c qu?c t?ch; đó là, b?n có th? vư?t qua các l?p h?c t? khách hàng đ?n các máy ch? mà không có gi?i h?n trên lên máy ch? k?t n?i tài nguyên. Sau đây M? ch?ng t? làm th? nào đ? s? d?ng m?t s? li?u đ? liên k?t d? li?u v?i m?t đi?u khi?n:

Lưu ?: b?n ph?i thay đ?i các tham s? c?a chu?i k?t n?i như c?n thi?t cho môi trư?ng c?a b?n.

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();
				
Đ? bi?t thêm chi ti?t v? các class b? d? li?u , h?y xem tài li?u Khuôn kh? .NET SDK sau đây:
S? li?u l?p
.aspx http://msdn2.Microsoft.com/en-US/Library/System.Data.dataset (vs.71)

DataReader l?p

Ngư?c l?i, n?u b?n ch? c?n đ? hi?n th? (và không thay đ?i) d? li?u đó là đ? đư?c tr? l?i, m?t l?p h?c DataReader có th? là m?t gi?i pháp t?t hơn. Ví d?, nó là t?t hơn đ? s? d?ng m?t DataReader cho m?t DropDownList ki?m soát v? DataReader là m?t con tr? v? phía trư?c ch? d? li?u. M? sau đây ch?ng minh làm th? nào đ? s? d?ng m?t SqlDataReader l?p liên k?t d? li?u v?i m?t đi?u khi?n:

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();
				
Đ? bi?t thêm chi ti?t v? SqlDataReader l?p và các d? li?u truy c?p v?i ASP.NET, xem các ch? đ? sau trong Khuôn kh? .NET SDK tài li?u:
L?p SqlDataReader
http://MSDN.Microsoft.com/en-US/Library/System.Data.SqlClient.sqldatareader.aspx

Phát tri?n hi?u su?t cao ?ng d?ng ASP.NET
.aspx http://msdn2.Microsoft.com/en-US/Library/5dws599a (vs.71)

gi?i h?n trên trong danh sách đi?u khi?n m?u

B?n có th? s? d?ng các m?u trong danh sách đi?u khi?n đ? gi?i h?n trên và tu? ch?nh các h? sơ cá nhân c?a ngu?n d? li?u. Ph?n này bao g?m ba phương pháp đ? làm đi?u này.

Phương pháp DataBinder.Eval

Khi các ngu?n d? li?u làm vi?c v?i d? li?u đư?c tr? l?i t? m?t b? máy cơ s? d? li?u, các ngu?n d? li?u có th? ch?a nhi?u m?u thông tin. B?n có th? s? d?ng các phương pháp DataBinder.Eval chung đ? tr? l?i d? li?u. Trong m?u m? sau đây, "au_id" l?nh v?c tr? l?i t? các ngu?n d? li?u c?a các đ?i tư?ng container:
<%# DataBinder.Eval(Container.DataItem,"au_id") %>
				
Đ? bi?t thêm chi ti?t v? phương pháp DataBinder.Eval , xem tài li?u Khuôn kh? .NET SDK sau đây:
Phương pháp DataBinder.Eval
http://MSDN.Microsoft.com/en-US/Library/4hx47hfe.aspx

R? ràng đúc

N?u b?n c?n ki?m soát nhi?u hơn, s? d?ng r? ràng đúc. M?t r? ràng chuy?n đ?i s? d?ng m?t lo?i chuy?n đ?i t? khóa. Các t? khóa này ho?t đ?ng như ch?c năng, nhưng tr?nh biên d?ch t?o ra m? n?i tuy?n. V? v?y, th?c hi?n là hơi nhanh hơn hơn v?i m?t ch?c năng g?i. Các m?u m? sau đây s? d?ng r? ràng đúc:

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] %>
				
Lưu ? r?ng ngay trư?c các m?u s? d?ng ho?c m?t DataTable, mà là m?t t?p h?p con c?a m?t t?p d? li?u, ho?c các DataReader là m?t ngu?n d? li?u.

S? ki?n ItemDataBound

B?n c?ng có th? s? d?ng các s? ki?n ItemDataBound c?a s? ki?m soát liên k?t d? li?u. S? ki?n này x?y ra khi m?t m?c là gi?i h?n trên đ? ki?m soát d? li?u. M?u m? HTML sau đây xác đ?nh m?t đi?u khi?n l?p l?i v?i m?t ItemTemplate:
<asp:repeater id=rptr runat=server>
   <itemtemplate>
      <asp:label id=lblAuthorID runat=server />
   </itemtemplate>
</asp:repeater>
				
Các phương pháp sau đây đư?c yêu c?u trong trang c?a b?n:

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

Thu?c tính

ID c?a bài: 307860 - L?n xem xét sau cùng: 15 Tháng Mười 2012 - Xem xét l?i: 3.0
Áp d?ng
  • 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
T? khóa: 
kbarttyperoadmap kbdatabinding kbinfo kbservercontrols kbmt KB307860 KbMtvi
Máy d?ch
QUAN TRỌNG: Bài vi?t này đư?c d?ch b?ng ph?n m?m d?ch máy c?a Microsoft ch? không ph?i do con ngư?i d?ch. Microsoft cung c?p các bài vi?t do con ngư?i d?ch và c? các bài vi?t do máy d?ch đ? b?n có th? truy c?p vào t?t c? các bài vi?t trong Cơ s? Ki?n th?c c?a chúng tôi b?ng ngôn ng? c?a b?n. Tuy nhiên, bài vi?t do máy d?ch không ph?i lúc nào c?ng hoàn h?o. Lo?i bài vi?t này có th? ch?a các sai sót v? t? v?ng, cú pháp ho?c ng? pháp, gi?ng như m?t ngư?i nư?c ngoài có th? m?c sai sót khi nói ngôn ng? c?a b?n. Microsoft không ch?u trách nhi?m v? b?t k? s? thi?u chính xác, sai sót ho?c thi?t h?i nào do vi?c d?ch sai n?i dung ho?c do ho?t đ?ng s? d?ng c?a khách hàng gây ra. Microsoft c?ng thư?ng xuyên c?p nh?t ph?n m?m d?ch máy này.
Nh?p chu?t vào đây đ? xem b?n ti?ng Anh c?a bài vi?t này: 307860

Cung cấp Phản hồi

 

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