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

MS SQL Server Discussion :

champ uniqueidentifier sql server


Sujet :

MS SQL Server

  1. #1
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Juin 2008
    Messages
    90
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2008
    Messages : 90
    Par défaut champ uniqueidentifier sql server
    Bonjours à tous,
    Voilà, je travaille sous visual basic expresse 2005 je ve récupérer à partir d'une base de données SQL serveur 2005 un champs de type uniqueidentifier mais le problème et qu'il ne le récupère pas et il me dit qu'aucune valeur n'est présente.
    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
     
            cnn1.ConnectionString = "SERVER=(local);Database=CRMbvsi_MSCRM;integrated Security=SSPI"
            cnn1.Open()
     
    For i = 0 To Grd1.Rows.Count - 1
     
     cmd1.CommandText = "select * from  SystemUserBase WHERE Firstname ='" & Grd1.Item(6, i).Value & "' and Lastname='" & Grd1.Item(5, i).Value & "'"
                cmd1.Connection = cnn1
    curs1 = cmd1.ExecuteReader()
     
                    cmd.CommandText = "INSERT INTO AccountBase (AccountId, AccountNumber, Name, Telephone1, Fax, EMailAddress1, DeletionStateCode, OwningUser, OwningBusinessUnit,StateCode) VALUES ( NEWID() ,'" & Grd1.Item(0, i).Value & "' , '" & Grd1.Item(1, i).Value & "', '" & Grd1.Item(2, i).Value & "', '" & Grd1.Item(3, i).Value & "', '" & Grd1.Item(4, i).Value & "', 0,'" & curs1("SystemeUserId") & "', '" & curs1("BuisinessUnitId") & "', 0)"
                    cmd.Connection = cnn1
                    cmd.ExecuteScalar()
     
    Next
    curs1.close()
    cnn1.close()
    Les champs qui sont en "Uniqueidentifier" et que je ne peut pas récupérer sont "SystemUserI"d et "BusinessUnitId"

  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 : 47
    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,

    Que vous donne les valeurs curs1("SystemUserId") et curs1("BusinessUnitId") ? Des chaînes de caractères ?

    Et en caster vos données :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     "... CAST('" & curs1("SystemUserId") & "' AS UNIQUEIDENTIFIER) ..."
    ++

  3. #3
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Juin 2008
    Messages
    90
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2008
    Messages : 90
    Par défaut
    cela me donne des chaine de caractère: "a9ba226a-b42a-df11-a285-00c29e53d75" sinon je n'est pas très bien compris votre proposition avec CAST?
    si vous pouvez m'expliquer.
    Merci de votre réponse.

  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 : 47
    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
    Transformer votre commandText de la façon suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    cmd.CommandText = "INSERT INTO AccountBase (AccountId, AccountNumber, Name, Telephone1, Fax, EMailAddress1, DeletionStateCode, OwningUser, OwningBusinessUnit,StateCode) VALUES ( NEWID() ,'" & Grd1.Item(0, i).Value & "' , '" & Grd1.Item(1, i).Value & "', '" & Grd1.Item(2, i).Value & "', '" & Grd1.Item(3, i).Value & "', '" & Grd1.Item(4, i).Value & "', 0, CAST('''" & curs1("SystemeUserId") & "''' AS UNIQUEIDENTIFIER), CAST('''" & curs1("BuisinessUnitId") & "''' AS UNIQUEIDENTIFIER), 0)"
     
    cmd.Connection = cnn1
    cmd.ExecuteScalar()
    ++

  5. #5
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Juin 2008
    Messages
    90
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2008
    Messages : 90
    Par défaut
    Bonjour, cela n'a pas marché et je ne comprend pas pourquoi si vous pourviez m'aider ce serait très aimable.
    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
            /*Déclaration dune variable pour la construction dune boucle*/   
            Dim i As Integer
     
            /*ouverture base CRM*/
            cnn1.ConnectionString = "SERVER=(local);Database=CRMbvsi_MSCRM;integrated Security=SSPI"
            cnn1.Open()
     
            /*Boucle pour parcourir la grille que lon a rempli au préalable*/
            For i = 0 To Grd1.Rows.Count - 1
     
                /*Solution àdévelloper pour enlevé linsertion manuelle et rendre possible les mise à jours automatique. on sélection dans la table des propriétaire de CRM leur nom et prenom et on les compare à ceux obtenuu à parti de SAGE afficher dans la grille, le problème est que le champs "SystemeUserId" est un type que lon ne peut pas récupérer.*/
                cmd1.CommandText = "select * from  SystemUserBase WHERE Firstname ='" & Grd1.Item(10, i).Value & "' and Lastname='" & Grd1.Item(9, i).Value & "' and LastName <> 'INTEGRATION' and LastName <> 'SYSTEM'"
                cmd1.Connection = cnn1
                curs1 = cmd1.ExecuteReader
     
                /*On insère dans la table AccountBase Id du client, le numero SAGE, le nom du client, son telephone, son fax, email, son numero de propriétaire*/
                cmd.CommandText = "INSERT INTO AccountBase (AccountId, AccountNumber, Name, Telephone1, Fax, EMailAddress1, DeletionStateCode, OwningUser, OwningBusinessUnit,StateCode) VALUES ( NEWID() ,'" & Grd1.Item(0, i).Value & "' , '" & Grd1.Item(1, i).Value & "', '" & Grd1.Item(2, i).Value & "', '" & Grd1.Item(3, i).Value & "', '" & Grd1.Item(4, i).Value & "', 0,CAST('''" & curs1("SystemeUserId") & "''' AS UNIQUEIDENTIFIER), CAST('''" & curs1("BuisinessUnitId") & "''' AS UNIQUEIDENTIFIER), 0)"
                cmd.Connection = cnn1
                cmd.ExecuteScalar()
     
            Next
            /*On ferme la lecture*/
            curs1.Close()
            /*Affichage d'un message de réussite de linsertion*/
            MessageBox.Show("Insertion  réussite")
            /*On ferme la base*/
            cnn1.Close()
    Voici l'erreur que j'obtient:
    L'exception IndexOutOfRangeException n'a pas été gérée SystemeUserId

    Et le chose la plus bizarre c'est que lorsque je veu débugger mon programme: quand je clic sur le cmd du INSERT et bien il devrai m'afficher la requête INSERT avec ses valeurs et non il m'affiche une requête SELECT que j'ai fait auparavant sur un autre bouton, pourtant j'ai bien vérifier que tout les cnn et curs soit bien fermé.

    Je vous remercie.

Discussions similaires

  1. Max Length des champs sous SQL server
    Par snach dans le forum Développement
    Réponses: 6
    Dernier message: 25/03/2009, 16h42
  2. Table avec champ CONSTRAINT? [SQL Server 2005]
    Par kacedda dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 19/06/2008, 17h30
  3. Champ Image SQL Server 2005
    Par digital prophecy dans le forum Bases de données
    Réponses: 0
    Dernier message: 20/12/2007, 13h04
  4. champ image sql server
    Par jupiter35 dans le forum C++
    Réponses: 2
    Dernier message: 13/07/2007, 15h24
  5. Réponses: 6
    Dernier message: 31/05/2007, 15h54

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