IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 .NET Discussion :

Procédure stockée et ado.net


Sujet :

.NET

  1. #1
    Membre habitué
    Inscrit en
    Août 2008
    Messages
    1 596
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 1 596
    Points : 175
    Points
    175
    Par défaut Procédure stockée et ado.net
    Bonjour, je suis un tutorial montrant l'intéraction entre Ado.net et sql server,
    j'ai deux tables classes et étudiant :

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    USE [SCOLARITE]
    GO
    /****** Objet*:  Table [dbo].[Classe]    Date de génération du script*: 01/05/2009 12:13:12 ******/
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    SET ANSI_PADDING ON
    GO
    CREATE TABLE [dbo].[Classe](
    	[Libelle] [varchar](50) COLLATE French_CI_AS NOT NULL,
    	[Niveau] [varchar](50) COLLATE French_CI_AS NOT NULL,
     CONSTRAINT [PK_Classe] PRIMARY KEY CLUSTERED 
    (
    	[Libelle] ASC
    )WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]
    ) ON [PRIMARY]
     
    GO
    SET ANSI_PADDING OFF
    GO
    USE [SCOLARITE]
    GO
    ALTER TABLE [dbo].[Classe]  WITH CHECK ADD  CONSTRAINT [FK_Classe_Classe] FOREIGN KEY([Libelle])
    REFERENCES [dbo].[Classe] ([Libelle])

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    USE [SCOLARITE]
    GO
    /****** Objet*:  Table [dbo].[Etudiant]    Date de génération du script*: 01/05/2009 12:13:27 ******/
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    SET ANSI_PADDING ON
    GO
    CREATE TABLE [dbo].[Etudiant](
    	[Matricule] [varchar](50) COLLATE French_CI_AS NOT NULL,
    	[Prenom] [varchar](50) COLLATE French_CI_AS NOT NULL,
    	[Nom] [varchar](50) COLLATE French_CI_AS NULL,
    	[Age] [int] NULL,
    	[ClEtudiant] [varchar](50) COLLATE French_CI_AS NOT NULL,
     CONSTRAINT [PK_Etudiant] PRIMARY KEY CLUSTERED 
    (
    	[Matricule] ASC
    )WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]
    ) ON [PRIMARY]
     
    GO
    SET ANSI_PADDING OFF
    GO
    USE [SCOLARITE]
    GO
    ALTER TABLE [dbo].[Etudiant]  WITH CHECK ADD  CONSTRAINT [FK_Etudiant_Classe] FOREIGN KEY([ClEtudiant])
    REFERENCES [dbo].[Classe] ([Libelle])

    Puis j'ai crée une procédure stockée :
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    USE [SCOLARITE]
    GO
    /****** Objet*:  StoredProcedure [dbo].[SELECTEtudiantsByClasse]    Date de génération du script*: 01/05/2009 12:14:03 ******/
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
     
     
     
    /*==================== STORED PROCEDURE  ====================*/
    CREATE Procedure [dbo].[SELECTEtudiantsByClasse](@ClasseLibelle varchar(50))
    AS
    SELECT  * FROM [Etudiant] 
    where ClEtudiant=@ClasseLibelle

    j'ai essayé le programme suivant :

    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
     
     // Exemple d'extraction de données avec l'objet DataReader
     
    using System;
    using System.Data.SqlClient;
    using System.Data;
    using System.IO;
     
    namespace ExempleAdoNetCSharp 
    {
        public class SQLConnexion 
        {
            public static void Main() 
            {
                string strConnexion = "Data Source=localhost; Integrated Security=SSPI;" + "Initial Catalog=SCOLARITE";
                string strProcedureStockee = "SELECTEtudiantsByClasse";
                try
                {
                    SqlConnection oConnection = new SqlConnection(strConnexion);
                    SqlCommand oCommand = new SqlCommand(strProcedureStockee, oConnection);
                    oCommand.CommandType = CommandType.StoredProcedure;
                    SqlParameter oParam = oCommand.Parameters.Add("@ClasseLibelle", SqlDbType.VarChar, 50, "Libelle");
                    oParam.Value = "cl1";
                    oConnection.Open();
                    SqlDataReader oReader = oCommand.ExecuteReader();
                    Console.WriteLine("\t{0}\t{1}", oReader.GetName(0), oReader.GetName(1));
                    while (oReader.Read())
                    {
                        Console.WriteLine("\t{0}\t{1}}", oReader.GetString(0), oReader.GetString(1));
                    }
                    oReader.Close();
                    oConnection.Close();
     
                }
                catch (Exception e)
                {
                    Console.WriteLine("L'erreur suivante a été rencontrée :" + e.Message);
                } 
                Console.ReadLine();
            } 
        } 
    }

    je veux afficher uniquement le matricule et le nom des étudiants, lorsque j'exécute la PS au niveau sql avec cl1 il me donne le résultat, voici le message d'erreur :
    Matricule Prenom
    L'erreur suivante a été rencontrée :Le format de la chaîne d'entrée est incorrec t.
    vous avez une idée ?

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    le problème est au niveau du Console.WriteLine :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Console.WriteLine("\t{0}\t{1}}" ...
    Il y a un "}" de trop

  3. #3
    Membre habitué
    Inscrit en
    Août 2008
    Messages
    1 596
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 1 596
    Points : 175
    Points
    175
    Par défaut
    Merci j'ai pas fait attention

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Appel de procédure stockée avec ADO.Net
    Par adilobrf dans le forum Développement Windows
    Réponses: 1
    Dernier message: 26/02/2013, 09h48
  2. Réponses: 2
    Dernier message: 22/02/2013, 15h24
  3. procédure stockée + mysql + ado.net
    Par superkiller dans le forum Accès aux données
    Réponses: 0
    Dernier message: 04/05/2010, 09h43
  4. appel d'une procédure stocké en asp.net
    Par malcom x dans le forum Accès aux données
    Réponses: 17
    Dernier message: 24/04/2008, 17h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo