Une brève discussion sur la propriété DataSource dans les contrôles de liaison de données C#

黄舟
Libérer: 2017-01-19 11:15:34
original
2115 Les gens l'ont consulté

Parfois, lorsque vous êtes entré dans une certaine étape de programmation et qu'il est très difficile de s'améliorer davantage, autant revenir en arrière et regarder les bases. Peut-être que vous obtiendrez de nouveaux avantages, et peut-être pourrez-vous vraiment comprendre ce que Confucius. » a dit le vrai sens de « revoir le passé et apprendre le nouveau ».
Les contrôles de liaison de données C# couramment utilisés incluent : Repeater, DataList, GridView, DetailsView, etc. Ici, j'utiliserai Repeater pour expliquer brièvement le problème.
Utilisez cet attribut pour spécifier la source de données utilisée pour remplir le champ Répéteur. DataSource peut être n'importe quel objet System.Collections.IEnumerable,
tel que System.Data.DataView, System.Collections.ArrayList, System.Collections.Hashtable, un tableau ou un objet IListSource utilisé pour accéder à la base de données.
Sources de données couramment utilisées :
Un DataTable
Un DataView
Un DataSet
Tout composant qui implémente l'interface IListSource
Tout composant qui implémente l'interface IList
Remarque :
Si Pour se lier à un tableau d'objets fortement typés, le type d'objet doit contenir des propriétés publiques.
Ce qui suit utilise quelques exemples simples pour présenter les applications spécifiques de DataSource.
<1>La liaison d'un DataTable récupère généralement les données de la base de données, puis les lie directement. La logique de fonctionnement spécifique de la base de données n'est plus fournie. Tout le monde doit le connaître très bien. La liaison d'un DataView est similaire à ceci.
Code du programme

privatevoidBindData()    
{    
//通过业务逻辑,直接调用数据库中的数据    
DataTablenTable=getTable();    
  
Repeater1.DataSource=nTable;    
Repeater1.DataBind();    
}
Copier après la connexion

Code HTML
Code du programme de contrôle de liaison de données C#

<asp:RepeaterIDasp:RepeaterID="Repeater1"runat="server">   
<HeaderTemplate>   
<table>   
<tr>   
<thscopethscope="col">   
姓名th>   
<th>   
年龄th>   
<tr>   
<HeaderTemplate>   
<ItemTemplate>   
<tr>   
<td>   
<%#Eval("Key")%>   
<td>   
<td>   
<%#Eval("value")%>   
<td>   
<tr>   
<ItemTemplate>   
<FooterTemplate>   
<table><FooterTemplate>   
<asp:Repeater>
Copier après la connexion

<2> ainsi de suite, qui stocke des données simples.
ArrayList
Code du programme de contrôle de liaison de données C#

privatevoidBindData()    
{    
ArrayListlist=newArrayList();    
list.Add("Jim");    
list.Add("Tom");    
list.Add("Bluce");    
list.Add("Mary");    
  
Repeater1.DataSource=list;    
Repeater1.DataBind();    
}
Copier après la connexion

Modifications HTML appropriées
Code du programme

<asp:RepeaterIDasp:RepeaterID="Repeater1"runat="server">   
<HeaderTemplate><table><tr><thscopethscope="col">姓名<th><tr><HeaderTemplate>   
<ItemTemplate><tr><td><%#Container.DataItem%><td><tr><ItemTemplate>   
<FooterTemplate><table><FooterTemplate>   
<asp:Repeater>
Copier après la connexion

<3>Dictionnaire de liaison, HashTable
Dictionnaire
Code du programme de contrôle de liaison de données C#

privatevoidBindData()    
{    
Dictionary<string,int>dic=newDictionary<string,int>();    
dic.Add("Jim",21);    
dic.Add("Tom",26);    
dic.Add("Bluce",33);    
dic.Add("Mary",18);    
  
Repeater1.DataSource=dic;    
Repeater1.DataBind();    
}
Copier après la connexion


Code HTML
Code du programme

<asp:RepeaterIDasp:RepeaterID="Repeater1"runat="server">   
<HeaderTemplate><table><tr><thscopethscope="col">姓名<th><th>年龄<th><tr><HeaderTemplate>   
<ItemTemplate><tr><td><%#Eval("Key")%>td><td><%#Eval("value")%><td><tr><ItemTemplate>   
<FooterTemplate><table><FooterTemplate>   
<asp:Repeater>
Copier après la connexion

<4> Ceci est très utile. Lorsque nous effectuons une requête de données, nous récupérons souvent des données de la base de données. Afin de faciliter le fonctionnement, elles doivent être encapsulées dans des objets. Cependant, ces objets doivent parfois être affichés sous la forme d'une liste. solution : conversion d'objet Pour DataTable, l'autre consiste à appeler directement la base de données. Ces deux options ne sont pas idéales. Et ici, la collection d'objets est directement liée au contrôle d'affichage des données, m'indiquant une issue. En fait, dans PetShop4.0, ceci est utilisé pour lier ICollection ou IList. Simple et clair.
Une classe d'utilisateurs simple contenant deux propriétés publiques.
Code du programme

usingSystem;  
usingSystem.Data;  

///

///SummarydescriptionforUser  
///

publicclassUser  
{  
privatestring_Name;  
publicstringName  
{  
get{return_Name;}  
set{_Name=value;}  
}  
privateint_Age;  
publicintAge  
{  
get{return_Age;}  
set{_Age=value;}  
}  
publicUser()  
{  
//  
//TODO:Addconstructorlogichere  
//  
}  
publicUser(stringname,intage)  
{  
_Name=name;  
_Age=age;  
}  
}
Copier après la connexion

Collection d'objets de liaison :
IList
Code du programme

privatevoidBindData()    
{    
Useruser1=newUser("Jim",21);    
Useruser2=newUser("Tom",23);    
Useruser3=newUser("Bluce",33);    
Useruser4=newUser("Mary",18);    
  
IList<User>list=newList<User>();    
list.Add(user1);    
list.Add(user2);    
list.Add(user3);    
list.Add(user4);    
  
Repeater1.DataSource=list;    
Repeater1.DataBind();    
}
Copier après la connexion

Propriétés publiques de l'objet de liaison Repeater correspondant :
Données C# code du programme de contrôle de liaison

<asp:RepeaterIDasp:RepeaterID="Repeater1"runat="server"> 
<HeaderTemplate> 
<table> 
<tr> 
<thscopethscope="col"> 
姓名th> 
<th> 
年龄<th> 
<tr> 
<HeaderTemplate> 
<ItemTemplate> 
<tr> 
<td> 
<%#Eval("Name")%> 
<td> 
<td> 
<%#Eval("Age")%> 
<td> 
<tr> 
<ItemTemplate> 
<FooterTemplate> 
<table><FooterTemplate> 
<asp:Repeater>
Copier après la connexion

Ce qui précède est le contenu de la propriété DataSource dans le contrôle de liaison de données C#. Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois (www.php.cn) !


Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!