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.
...
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)
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.
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.