Overblog Suivre ce blog
Editer l'article Administration Créer mon blog

Présentation

  • : Romagny13 - Du .NET,du pur .NET
  • Romagny13 - Du .NET,du pur .NET
  • : Cycle de progression Faire (quelque chose qui marche) -> comprendre ce que l’on fait/comment cela marche -> pousser plus loin les notions
  • Contact

Recherche

Articles Récents

30 juillet 2007 1 30 /07 /juillet /2007 23:35
[ASP.NET] LinqDataSource
Je dois avouer que si je ne suis pas trop encore convaincu par Linq To SQL pour une utilisation avec une « grosse » application de bureau, pour les applications Web il me semble particulièrement bien adapté
Préparation
1 – Ajouter un fichier Linq To SQL au site web
2 – bizarrement avec la beta 2 de VS2008 on n’a plus le constructeur par défaut dans le DataContext
 
Donc j’ajoute un constructeur par défaut (si on ne veut pas se prendre une exception) qui va aller lire la connectionString dans le fichier de configuration Web.config
public ContactDataContext() :
        base((WebConfigurationManager.GetSection("connectionStrings") as ConnectionStringsSection).ConnectionStrings["ContactDBConnectionString"].ConnectionString)
    {
        OnCreated(); 
    }
 
I dans le code de la page ASP.NET

LinqDataSource1-copie-1.JPG

LinqDataSource2-copie-1.JPG
 
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="ContactWithSQLDataSource.aspx.cs" Inherits="ContactWithSQLS" %>
 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>Demo LinqDataSource</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
     <asp:LinqDataSource
            ID="LinqDataSource1"
            runat="server"
            ContextTypeName="ContactDataContext"
            EnableDelete="True"
            EnableInsert="True"
            EnableUpdate="True"
            TableName="Contacts">
        </asp:LinqDataSource>
        <asp:GridView
                ID="GridView1"
                runat="server"
                AutoGenerateColumns="False"
                DataKeyNames="ContactID"
                DataSourceID="LinqDataSource1" AllowPaging="True" AllowSorting="True">
            <Columns>
                <asp:commandfield ShowDeleteButton="True" ShowEditButton="True">
                </asp:commandfield>
                <asp:boundfield DataField="ContactID" HeaderText="ContactID"
                    InsertVisible="False" ReadOnly="True" SortExpression="ContactID">
                </asp:boundfield>
                <asp:boundfield DataField="Contactname" HeaderText="Contactname"
                    SortExpression="Contactname"></asp:boundfield>
                <asp:boundfield DataField="ContactAge" HeaderText="ContactAge"
                    SortExpression="ContactAge"></asp:boundfield>
                <asp:boundfield DataField="ContactCategoryID" HeaderText="ContactCategoryID"
                    SortExpression="ContactCategoryID"></asp:boundfield>
            </Columns>
        </asp:GridView>
    </div>
    </form>
</body>
</html>
 
 
LinqDataSource3.JPG

II dans le code-behind de la page
Pour démonstration(car je pense que si c’est pour coder dans le code behind de la page mieux vaut carrément attaquer directement le DataContext sans passer par une LinqDataSource) on peut également définir une datasource en C# dans le code behind
(Attention toutefois si vous désirez permettre la modification dans le gridView il faudra gérer en plus les événements RowUpdating,RowDeleting et RowEditing)
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Xml.Linq;
using System.Collections;
 
public partial class _Default : System.Web.UI.Page
{
    LinqDataSource ContactDataSource = new LinqDataSource();
 
    protected void Page_Load(object sender, EventArgs e)
    {
        ContactDataSource.ContextTypeName = "ContactDataContext";
        ContactDataSource.TableName = "Contacts";
        ContactDataSource.EnableInsert = true;
        ContactDataSource.EnableUpdate = true;
        ContactDataSource.EnableDelete = true;
 
        GridView1.DataSource = ContactDataSource;
        GridView1.DataBind();
    }
}
 

Partager cet article

Repost 0
Published by Romagny13 - dans ASP.NET
commenter cet article

commentaires