shrek87
Messages postés13Date d'inscriptionlundi 23 avril 2007StatutMembreDernière intervention22 juin 2007
-
6 juin 2007 à 10:06
shrek87
Messages postés13Date d'inscriptionlundi 23 avril 2007StatutMembreDernière intervention22 juin 2007
-
11 juin 2007 à 09:17
Bonjour à tous,
Je dévellope une appli dans laquelle je me connecte à une base SQL Server pour récupérer des infos.
Ce qui est bizarre c'est que j'ai une fonction qui marche une fois sur deux et je n'arrive pas à voir d'où vient le problème.
Voilà mon code :
// Connexion open
// Definition de la requète SQL : cmdBD new SqlCommand (string.concat("Select * from Article where refCB ",textBoxCB.text),chaineConnexion);
// Déf du data reader :
drConnBD = cmdBD.ExecuteReader(CommandBehavior.CloseConnection);
// Jusque là ca va.
if (drConnBD.Read())
// |-----> c'est là que ca bloque ("drConnBD.read()"), une fois sur deux ca me mets le message d'erreur suivant : "l'évaluation de l'expression à causé un dépassement de capacité [name of function (if known) = ]"
textBoxNom = (string)drConnBD["Nom"]; // ca c'est bon aussi.
...
SharpMao
Messages postés1024Date d'inscriptionmardi 4 février 2003StatutMembreDernière intervention 7 juin 201069 6 juin 2007 à 12:50
Oui, bon d'accord, je vais me cacher ...
Désolé, ces derniers temps je code en VB, ferais mieux d'utiliser Int32, c'est valable en C# comme du côté obscure de la force.
Tu as bien entendu raison égalemement Nurgle.
Amicalement, SharpMao
"C'est pas parce qu'ils sont nombreux à avoir tort qu'ils ont raison!"
(Coluche / 1944-1986 / Pensées et anecdotes)
cs_Nurgle
Messages postés1642Date d'inscriptionsamedi 6 novembre 2004StatutMembreDernière intervention28 avril 20114 7 juin 2007 à 10:17
Oulà, j'ai même pas fait attention au Integer non plus !
C'est un signe, je vais trop de VB :p
SqlCeDataReader, ça fait pas parti du framework ça, si tu as les sources tu peux aller regarder dans ProcessResults() (ou sinon avec Reflector)
A part ça, est ce que ta requête elle-même fonctionne ?
Mais un dépassement de capacité, en .NET, c'est pas possible ! Et en SQL, franchement je suis pas sûr...
Donc ce truc doit appeller du COM derrière ou un truc du genre, il faut aller voir dans ProcessResults(). Mais si en plus ça marche qu'une fois sur deux, de manière totalement aléatoire... ça va être difficile à résoudre.
refCB est de quel type ?
Logiquement il devrait y avoir un code d'erreur avec le message, ça peut être plus parlant.
Quand tu dis que ça échoue une fois sur 2, tu parles d'une execution sur 2, ou d'une ligne du jeu de résultat sur 2 ?
Il faudrait voir la structure de la table, si elle comporte un grand nombre de colonnes / des colonnes volumineuses.
S'il y a des colonnes calculées etc.
shrek87
Messages postés13Date d'inscriptionlundi 23 avril 2007StatutMembreDernière intervention22 juin 2007 11 juin 2007 à 09:17
Salut, et merci de ta réponse coq.
Ma table n'a que 3 colonnes : RefCB, Désignation, Quantite
Elles sont toutes de type nvarchar, les valeurs nulles ne sont pas autorisée et refCB est unique mais pas clé primaire.
Il n'y a pas de code d'erreur avec le message.
La fonction marche avec certaines lignes de ma table.