Bonjour,
j'ai ce bout de code me permettant de me brancher a SQL pour ensuite remplir mon dataset. Comme je ne sais pas d'avance le genre de données que je vais recevoir, il m'est impossible de programmer explicitement le type de colonnes. Toutefois, j'ai besoin impérativement que les données soient des "system.double" afin d'effectuer d'autres opérations plus loin dans mon code. Puis-je utiliser une structure tel le For Each...Next pour arriver a mes fins ? Exist-il un meilleur moyen ? Vos suggestion seront grandement appréciées.
Merci à l'avance, Bugs_Bunny
Dim strRequete As String
Dim dbconn As SqlConnection
Dim dbcomm As New SqlCommand()
Dim dbadapt As New SqlDataAdapter()
Dim dbset As New DataSet()
Dim dvCache As DataView
Dim strNomCache As String
If Not Session("nomCache") Is Nothing Then
'Si le DataView est déjà en mémoire cache (changement de page, sort, etc.) l'utiliser
dvCache = Cache.Get("rapportGrid" & Session("nomCache"))
Else
'Sinon exécuter la requête et remplir un nouveau DataSet et DataView
strRequete = Session.Item("strSelect") & Session.Item("strFrom") & _
Session.Item("strWhere") & Session.Item("strOrder")
dbconn = conn.getConn(Session, rapport)
dbconn.Open()
dbcomm.Connection = dbconn
dbcomm.CommandText = strRequete
dbadapt.SelectCommand = dbcomm
dbadapt.Fill(dbset)
dbconn.Close()
dvCache = dbset.Tables(0).DefaultView
remplirColsDSet(dvCache)
'Garder le Dataview dans la cache pour optimiser lors d'un changement de page
strNomCache = System.Guid.NewGuid().ToString()
Session("nomCache") = strNomCache
Cache.Insert("rapportGrid" & strNomCache, dvCache, Nothing, DateTime.MaxValue, TimeSpan.FromMinutes("35"))
End If