bonjour
(code simplifié pour mettre en évidence le problème)
dans une même connexion, j'exécute 2 requêtes, la première créé une table temporaire #
la 2ème lit cette même table #
(tant que la connexion à sql server n'est pas fermée, une table temporaire reste accessible, enfin en théorie)
si je n'ajoute pas de parameter aucun soucis
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 Dim co As New System.Data.SqlClient.SqlConnection co.ConnectionString = "ma chaine de connexion" co.Open() Dim cmd As New System.Data.SqlClient.SqlCommand cmd.Connection = co cmd.Parameters.Add("@test", SqlDbType.BigInt).Value = 1 ' ajout d'un parameter cmd.CommandText = "CREATE TABLE #TOTO (a int)" cmd.ExecuteNonQuery() cmd.CommandText = "SELECT * FROM #TOTO" cmd.ExecuteReader()
par contre si j'ajoute un parameter à mon sqlcommand, l'executenonquery passe et l'executereader plante
je ne comprends pas en quoi ca plante, je pencherais même pour un bug du framework, je ne vois pas pourquoi à cause d'un parameter ma table # serait supprimée !?SQL Exception : nom d'objet #TOTO non valide
si quelqu'un peut m'expliquer pourquoi ce comportement je suis preneur
merci
Partager