ASP.Net, (tutoriel C#) ajout de données dans une base de données SQL Server

Ingrédients:

Principalement, dans ce petit tutoriel, vous trouverez les ingrédients suivants:

  • page maitre.
  • Web Form  avec page maitre.
  • User Control (Contrôle utilisateur)
  • Utilisation  de l’outil “Validation” (Très intéressant).
  • Création d’une table en SQL Server.
  • Création et utilisation d’une Procédure Stockée en SQL Server.
  • Création d’une classe avec des méthodes à appeler à partir d’une autre classe.
  • appeler une méthode avec instanciation.
  • Et bien d’autres affaires.
C'est partie
  • Dans VS créer un nouveau projet Web C# vide (Exemple :Demo1_C )
  • Ajouter une page “Page maitre Web Forms” avec le nom ‘Site’
  • Ajouter une page “Web Form avec page maitre” avec le nom ‘Default’
  • Ajouter un nouveau répertoire avec le nom ‘UControl’ et ajouter un ‘Cotrôle utilisateur Web Forms ‘ avec le nom ‘UC_addUsers’ et ajouter le code suivant dans la partie Source
Code source du UC_addUsers
</pre>
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="UC_AddUsers.ascx.cs" Inherits="Demo1_C.UControl.UC_AddUsers" %>
<style type="text/css">
</style>

<table class="auto-style1">
<tr>
<td class="auto-style2">
First Name
<asp:RequiredFieldValidator ID="RFV_Firstname" runat="server"
ErrorMessage="Le prénom est obligatoire" ForeColor="#FF3300"
SetFocusOnError="True" ValidationGroup="UC_Insert" ControlToValidate="Txtfirstname">*</asp:RequiredFieldValidator>
</td>
<td>
<asp:TextBox ID="Txtfirstname" runat="server" Width="137px"></asp:TextBox>
</td>
</tr>
<tr>
<td class="auto-style2">
Last Name
<asp:RequiredFieldValidator ID="RFV_Lastename" runat="server"
ErrorMessage="Le nom est obligatoire" ForeColor="#FF3300"
SetFocusOnError="True" ValidationGroup="UC_Insert" ControlToValidate="Txtlastname">*</asp:RequiredFieldValidator>
</td>
<td>
<asp:TextBox ID="Txtlastname" runat="server" Width="137px"></asp:TextBox>
</td>
</tr>
<tr>
<td class="auto-style1">
Email
<asp:RequiredFieldValidator ID="RFV_Email" runat="server"
ErrorMessage="L'adresse mail est obligatoire" ForeColor="#FF3300"
SetFocusOnError="True" ValidationGroup="UC_Insert"
ControlToValidate="txtemail">*</asp:RequiredFieldValidator>
<asp:RegularExpressionValidator ID="REValemail" runat="server"
ErrorMessage="Le format du mail semble incorrecte"
ForeColor="#FF3300" ControlToValidate="txtemail" ValidationExpression="\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*" ValidationGroup="UC_Insert">*</asp:RegularExpressionValidator>
</td>
<td class="auto-style1">
<asp:TextBox ID="txtemail" runat="server" Width="137px"></asp:TextBox>
</td>
</tr>
<tr><td>
<asp:Button ID="btnSubmit" runat="server" Text="Submit" OnClick="btnSubmit_Click"
ValidationGroup="UC_Insert"/>
</td></tr>
</table>

<asp:ValidationSummary ID="ValSummary1" runat="server" Height="46px"
ForeColor="#FF3300" ValidationGroup="UC_Insert" ShowMessageBox="True" />
<pre>
Voici Le Design obtenu:

  • Intégrer le User Control ‘UC_addUsers’ dans la Web form ‘Default’

Pour cela, il va falloir enregistrer le User Control dans la Web form ‘Default’. en ajoutant la ligne du code No 3 dans le code source de cette Web form. et en la place dans le ‘Content2’ avec la ligne du code No 6

Voici le code source de la Web Form 'Default'
<%@ Page Title="" Language="C#" MasterPageFile="~/Site.Master" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="Demo1_C.Default" %>
<%@ register TagPrefix="tpUCAddUser" TagName="tnUCAddUser" Src="~/UControl/UC_AddUsers.ascx" %>
<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">
 <tpUCAddUser:tnUCAddUser ID="idUCAddUser" runat="server"/>
</asp:Content>

Possiblement que vous aller avoir l’erreur suivante:

Cette erreur est dû au non-compatibilité de quelques scripts jQuery qui sont liés à l’exécution.
Oui, on a la solution !
Il va falloir ajouter la section du code suivante dans le fichier XML ‘Web.config’ juste après la balise

<configuration>
Voici le code
<appSettings>
 <add key="ValidationSettings:UnobtrusiveValidationMode" value="None" />
</appSettings>

Jusqu’à là, nous avons fait que le ‘Design’. (Ils nous restent beaucoup de travail à faire.)

  •  Il nous faut un serveur SQL Server avec une base de données “TestDB” dans laquelle on va créer la table “Users” et la procédure stockée “spInsertUser”. Voici le code

Création de la table “Users”


use testDB
go
CREATE TABLE Users
(
[id] [int] IDENTITY(1,1) primary key NOT NULL,
[FirstName] [nvarchar](50) NULL,
[LastName] [nvarchar](50) NULL,
[Email] [nvarchar](50) NULL,
)
go

Création de la procedure Stockée “spInsertUser”


use testDB

go

Create procedure spInsertUser

@FirstName nvarchar(50),

@LastName nvarchar(50),

@Email nvarchar(50)

as

Begin

insert into Users

values(@FirstName,@LastName,@Email)

End

GO

  • Maintenant, de retour à VS pour créer la classe « MyClass.cs» dans laquelle il va avoir la methode «InsertUsers» qui va s’occuper de l’envoi des données après qu’on l’appelle à partir de l’évènement OnClick du bouton « Submit » qui se trouve dans notre User Contrôle (L’interface)

Voici le contenu de la classe « MyClass.cs»

Dans cette classe on a deux methodes

1- la méthode de connexion au serveur de basse de données “ConnetionToDBServer()”‘

public string InstanceOfConnet;
public void ConnetionToDBServer()
{
InstanceOfConnet = ConfigurationManager.ConnectionStrings["CS"].ConnectionString;
}

2-la méthode “InsertUsers()”


public void InsertUsers(string firstname, string lastname, string email)
{
ConnetionToDBServer();
using (SqlConnection Maconnexion = new SqlConnection(InstanceOfConnet))
{
SqlCommand cmd = new SqlCommand("spInsertUser", Maconnexion);
cmd.CommandType = CommandType.StoredProcedure;
SqlParameter ParamFirstName = new SqlParameter("@FirstName", firstname);
SqlParameter ParamLastName = new SqlParameter("@LastName", lastname);
SqlParameter ParamEmail = new SqlParameter("@Email", email);
cmd.Parameters.Add(ParamFirstName);
cmd.Parameters.Add(ParamLastName);
cmd.Parameters.Add(ParamEmail);
Maconnexion.Open();
cmd.ExecuteNonQuery();
}

}

Le contenu final de la class “MyClass” sera comme suit:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Configuration;
using System.Data.SqlClient;
using System.Data;
namespace Demo1_C
{
public class MyClass
{
//public string firstname;
//public string lastname;
//public string email;
public string InstanceOfConnet;
public void ConnetionToDBServer()
{
InstanceOfConnet = ConfigurationManager.ConnectionStrings["CS"].ConnectionString;
}
public void InsertUsers(string firstname, string lastname, string email)
{
ConnetionToDBServer();
using (SqlConnection Maconnexion = new SqlConnection(InstanceOfConnet))
{
SqlCommand cmd = new SqlCommand("spInsertUser", Maconnexion);
cmd.CommandType = CommandType.StoredProcedure;
SqlParameter ParamFirstName = new SqlParameter("@FirstName", firstname);
SqlParameter ParamLastName = new SqlParameter("@LastName", lastname);
SqlParameter ParamEmail = new SqlParameter("@Email", email);
cmd.Parameters.Add(ParamFirstName);
cmd.Parameters.Add(ParamLastName);
cmd.Parameters.Add(ParamEmail);
Maconnexion.Open();
cmd.ExecuteNonQuery();
}

}
}
}

N’oublier pas d’ajouter  la partie “configurationStrings ” dans le fichier “Web.config”

Voici le code (mon serveur d’appel “pc”, essayes de mettre le votre si tu veux que cela fonctionne pour toi !)

<connectionStrings>
 <add name="CS" connectionString="server=pc;database=TestDB;Persist Security Info=True;User ID=sa;Password=bha18363"/>
</connectionStrings> 

Finalement, voici le code du bouton “Submit”

protected void btnSubmit_Click(object sender, EventArgs e)
{
string firstname=Txtfirstname.Text;
string lastname= Txtlastname.Text;
string email=txtemail.Text;
MyClass Mycs = new MyClass();

Mycs.InsertUsers(firstname, lastname, email);
}

Voilà, ça marche ! Si vous avez des questions , n”hésitez pas .

Leave a Reply

Your email address will not be published. Required fields are marked *