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

Développement SQL Server Discussion :

Faire une fonction sql


Sujet :

Développement SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé Avatar de mikoukoumi
    Homme Profil pro
    Développeur .net
    Inscrit en
    Mai 2010
    Messages
    151
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Charente Maritime (Poitou Charente)

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

    Informations forums :
    Inscription : Mai 2010
    Messages : 151
    Par défaut Faire une fonction sql
    Bonjour,
    j'aimerais créer une fonction sql en langage csharp(c#) qui récupère le contenu d'une colonne( qte en commande) à partir d'une autre colonne (identifiant article).

    j'ai cherché comment se faisait les fonctions mais je n'est trouvé grand chose donc si quelqu'un pourrait m'orienter ce serais très gentil de ca part(lien ou conseil).

    ps: désolé si je me suis trompé d'emplacement de sujet

  2. #2
    Expert confirmé
    Avatar de mikedavem
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2005
    Messages
    5 450
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Distribution

    Informations forums :
    Inscription : Août 2005
    Messages : 5 450
    Par défaut
    Bonjour,

    j'aimerais créer une fonction sql en langage csharp(c#) qui récupère le contenu d'une colonne( qte en commande) à partir d'une autre colonne (identifiant article).
    Quel est l'intérêt de passer par du code .NET pour une telle fonction ?

    ++

  3. #3
    Membre éprouvé Avatar de mikoukoumi
    Homme Profil pro
    Développeur .net
    Inscrit en
    Mai 2010
    Messages
    151
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Charente Maritime (Poitou Charente)

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

    Informations forums :
    Inscription : Mai 2010
    Messages : 151
    Par défaut
    ^^
    Je suis en stage en entreprise, ceci me sert car je récupère toute mes données depuis un sql serveur.
    cela fais déjà assez de temps que je galère je trouve vraiment rien...

  4. #4
    Expert confirmé
    Avatar de mikedavem
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2005
    Messages
    5 450
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Distribution

    Informations forums :
    Inscription : Août 2005
    Messages : 5 450
    Par défaut
    Ah si vous êtes en stage ...

    Mais pour bien comprendre ...

    Vous voulez créer une méthode en C# qui récupère vos données ou vous voulez faire une fonction SQL en code C# que vous déployerez en assemblies sur le serveur SQL ?

    ++

  5. #5
    Membre éprouvé Avatar de mikoukoumi
    Homme Profil pro
    Développeur .net
    Inscrit en
    Mai 2010
    Messages
    151
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Charente Maritime (Poitou Charente)

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

    Informations forums :
    Inscription : Mai 2010
    Messages : 151
    Par défaut
    oui en stage ^^' c'est bien mais c'est encore mieux quand ca fonctionne

    voici mon code
    Code : 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
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data.SqlClient;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    
    namespace Csharpview
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
    
            private void button1_Click(object sender, EventArgs e)
            {
                try
                {
                    // Chaîne de connexion
                    string strConnect = "database=Madatabase;server=monserveur;User ID=xx;pwd=xx";
    
                    // Objet sql de connection (chaîne)
                    SqlConnection connection = new SqlConnection(strConnect);
    
                    // Ouverture de la connexion sql serveur
                    connection.Open();
    
                    // Créer une requête sql 
                    string strCommand = "SELECT DISTINCT A.Article, A.Code, A.Designation,0 AS Qte FROM dbo.Articles AS A ";
                    //SELECT Articles.Code, Articles.Designation,0 as Qte FROM Articles CROSS JOIN LignesAchatCommande CROSS JOIN AchatCommandes AS ref
    
                    //Créer un DataTable
                     DataTable dataTable= new DataTable();
    
                    //Créer un DataAdapter
                    SqlDataAdapter dataAdapter = new SqlDataAdapter(strCommand, strConnect);
    
    
                    //Remplis(fill) le DataTable avec le DataAdapter
                    dataAdapter.Fill(dataTable);
    
                    //remplir le datagridview avec un dataset
                    dataGridView1.DataSource = dataTable;
    
                    //Fermeture de la connexion sql serveur
                    connection.Close();
                    
                      
                   for (int i = 0; i < dataTable.Rows.Count ; i++) // boucle for qui permet de parcourir la table
                   {
                       string s = "SELECT (LAC.Quantite-LAC.Qtelivree) as Qte FROM LignesAchatCommande AS LAC INNER JOIN AchatCommandes as AC ON LAC.AchatCommande = AC.AchatCommande WHERE AC.Soldee = 0 and LAC.Article = " + dataTable.Rows[i]["Article"].ToString() ;
                       SqlCommand cmd = connection.CreateCommand();
                       cmd.CommandText = s;
                     
                       //Permet de parcourir les lignes du tableau de la colone désirer ici Qte
                       dataTable.Rows[i]["Qte"]=cmd.ExecuteScalar();  
                }         
    			} 
                 catch (Exception ex)
                {
                 System.Diagnostics.Debug.WriteLine(ex.ToString());
                 }
                 }
            }
    }
    j'aimerais une fonction qui récupère les données de Qte (surligné en rouge dans le code) avec une condition

  6. #6
    Membre éclairé Avatar de SetaSensei
    Homme Profil pro
    Inscrit en
    Juin 2006
    Messages
    78
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 78
    Par défaut
    Eh bien ta requête ne me semble pas fausse...
    Qu'y a-t-il qui ne marche pas ?

    En faire une fonction n'améliorera pas le temps de traitement.
    Par contre, il serait préférable de faire une seule requête pour récupérer la quantité que tu calcules (une requête par ligne, ça fait vite beaucoup !)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    SELECT DISTINCT 
    	A.Article, 
    	A.Code, 
    	A.Designation,
    	LAC.Quantite-LAC.Qtelivree as Qte
    FROM 
    	dbo.Articles AS A inner join
    	LignesAchatCommande AS LAC on LAC.Article = A.Article inner join
    	AchatCommandes as AC ON LAC.AchatCommande = AC.AchatCommande 
    WHERE
    	AC.Soldee = 0

    EDIT : La requête en un peu mieux...

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 06/03/2008, 14h26
  2. Faire une fonction
    Par philippef dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 12/04/2006, 17h14
  3. soucis a faire une requete SQL
    Par navona dans le forum Langage SQL
    Réponses: 7
    Dernier message: 01/09/2005, 16h19
  4. Réponses: 2
    Dernier message: 03/05/2004, 12h13
  5. [VB6] Comment faire une fonction qui renvoie 2 résultats
    Par tazarine dans le forum VB 6 et antérieur
    Réponses: 10
    Dernier message: 15/01/2004, 00h13

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