begin process at 2012 05 28 09:18:43
  Trouver un code source :
 
dans
 
Accueil > Forum > 

ASP.NET

 > 

Base de données

 > 

Access

 > 

remplir une table a travers les données de datareader


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

remplir une table a travers les données de datareader

jeudi 19 mai 2011 à 10:26:47 | remplir une table a travers les données de datareader

saadouli7

bonjour
j'ai le probleme suivant:
j'ai une table "table1" access dont je veut le remplir à travers des données extraits d'une autre table "enseignement" . j'ai ecris le code suivant:

cnxstr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Users\compaq\Desktop\Emploi.mdb;"
cnx = New OleDb.OleDbConnection
cnx.ConnectionString = cnxstr
cnx.Open()
sql2 = " select jour_,salle_,HD from Enseignements where CycleAnnée_=" & ComboBox2.SelectedItem & " and filière_='" & ComboBox1.SelectedItem & "' and Groupe=" & ListBox1.SelectedItem
cmd2 = New OleDb.OleDbCommand
cmd2.CommandText = sql2
cmd2.Connection() = cnx
Dim Reader2 As OleDb.OleDbDataReader = cmd2.ExecuteReader
If (Reader2.HasRows) Then

While Reader2.Read()
sql3 = "insert into Table1 (jour_,salle_,HD) values(myReader2.GetInt16(0) , myReader2.GetString(1) , myReader2.GetInt16(2)) "
cmd3.CommandText = sql3
cmd3.Connection() = cnx
Dim dr As OleDb.OleDbDataReader = cmd.ExecuteReader
End While
End If

Reader2.Close()
l'execution passe sans message d'erreur. et j'ai bien verifier que ma datareader"reader2" contient des données, mais la table "Table1" reste vide je sais pas où le probleme. est ce que quelq'un peut m'aider
merci
vendredi 20 mai 2011 à 11:30:33 | Re : remplir une table a travers les données de datareader

jopop

Salut,

je comprends pas : pour ta requête du "select" tu fais la bonne concaténation, alors que dans ton "insert" t'écris n'importe quoi.

Et pour rappel c'est un ExecuteNonQuery qu'il faut utiliser pour un insert/update/delete, et non un ExecuteReader
vendredi 20 mai 2011 à 12:20:01 | Re : remplir une table a travers les données de datareader

saadouli7

bonjours
oui tu as raison j'ai corrigé cette faute.
mon nouveau code est:
While Reader2.Read()
sql3 = "insert into Table1 (jour_,salle_,HD) values('" & Reader2.GetValue(0) & "' ,'" & Reader2.GetValue(1) & "' ,'" & Reader2.GetValue(2) & "')"
cmd3 = New OleDb.OleDbCommand
cmd3.CommandText = sql3
cmd3.Connection() = cnx
cmd3.ExecuteNonQuery()
End While
mais il reste encore un probleme à l'execution la table table1 se remplit correctement avec les données selectionés mais j'ai toujours un msg d'erreur
au niveau de cmd.ExecuteNonquerry: "Type de données incompatible dans l'expression du critère".
je crois que cet erreur concerne la partie & Reader2.GetValue(2) & qui correspont à la valeur de HD qui est declaré de type réel simple.j'ai essayé de remplacé getvalue par getFloat mais ça resta la meme chose
remarque: jour_ et salle sont respectivement declarés de type entier est texte

est ce que quelqu'un a une idéé.
merci
vendredi 20 mai 2011 à 14:29:48 | Re : remplir une table a travers les données de datareader

jopop

Re,

à vue de nez il y a un souci pour certains enregistrements uniquement, du fait que ta table est bien remplie (ou du moins remplie jusqu'à ce que l'exception soit levée).

La valeur du champ HD dans ta table Enseignements est nullable ?
Si oui, il faut tester si la valeur est différentes de DBNull.Value, dans le cas contraire utiliser une valeur par défaut. Ou alors le remplacer par null (valeur directe, pas de quote autour) si ton champ est également nullable sur ta Table1.

Au fait, de quel type est le champ 'HD' ?
vendredi 20 mai 2011 à 14:51:31 | Re : remplir une table a travers les données de datareader

saadouli7

salut,
concernant HD j'ai indiqué qu'il est de type réel simple il n'est pas nullablle.
à chaque apparition de l'exeption je consulte ma table table1 je remarque qu'elle est bien remplit et sans aucun manque de données . mon probleme reste toujour concernant ce message d'erreur .j'arrive pas à determiner d'où le problème
vendredi 20 mai 2011 à 15:17:47 | Re : remplir une table a travers les données de datareader

jopop

Avi, j'avais zappé que tu avais donné le typage de HD ;)

Essaie alors de faire sauter les quotes autour de cette valeur dans ta requête.

Je sais que l'écriture normale pour une valeur numérique c'est sans quote, mais que certains SGBD l'acceptent quand même, donc ça se tente (fais attention au séparateur décimal par contre, le '.' (point) est fortement recommandé pour ne pas dire obligatoire. Or VB risque d'appliquer celui de ta culture soit le ',' (virgule)).


Cette discussion est classée dans : table, données, cnx, oledb, reader2


Répondre à ce message

Sujets en rapport avec ce message

afficher des données de datareader dans datagridview [ par saadouli7 ] je veut afficher les données de ma datareader dans un datagridview j'ai ecrit le code suivant : cnxstr="Provider=Microsoft.Jet.OLEDB.4.0;DataSource=C: base de données supprimer tous les elements d une table [ par frk22 ] Bonjour, je développe un petit soft utilisant une base de données. Mon souci est que j aimerais offrir à l'utilisateur la possibilité de réinitialise Tableau : Scrollbar horizontal et entete fixe [ par mounirxx ] Bonjour, J'ai réussi grâce au forum de codes-sources.com à réaliser un tableau dont l'entête reste toujours fixe lorsque l'on descend les lignes grâc connection oledb [ par fred0dec ] bonjour a tousVoila j'ai un petit prob quand je veux accede a ma base de donnee access(office xp), j'ai ce message d'erreur que puis je faire?le messa Comment forcer l'ajustement(width) d'une colonne [ par Maroxye ] Bonjour à tous, J'ai une table html que je remplis en code-behind. Les données proviennent d'une requête SQL. Je spécifie chaque taille des colonnes Enregistrer les données d'une JTable dans une base des données [ par Recay2 ] Bonjour, j'ai beau cherché comment enregistrer les données d'une Jtables dans une base des données, mais je n'arrive pas à le faire svp aidez moi. Voi requete de selection a deux criteres [ par saadouli7 ] j'ai une probleme lors de l'execution de ma requete de selection . mon code est le suivant cnxstr="Provider=Microsoft.Jet.OLEDB.4.0;DataSource=C:\Use Probleme dans l'ajout des données dans une table [ par RIZO1 ] Ridha Zje veux ajouter des données dans une table t_operle mesage d'erreur suivant apparait toujoursvoici le messageType d'erreur :Microsoft OLE DB Pr Inserer des données ? [ par ralebole ] Bonjour voila j'ai un petit probleme je voudrais inserer des données au debut de ma table access mais mon code ajoute les données à la fin de ma table bases de données!! [ par lotfi213_b19 ] bonsoir a tous et a toutes je debute asp et voila mon code : TEST <% Dim conn conn = Server.CreateObject("ADODB.Connect


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,622 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales