Prendre donnée de type Double dans une colonne d'une BDD sql en recherchant par String
C'est-un-truc-de-dingue.
Bonjour à vous tous qui entrez dans un terrain mystérieux.
Mon problème est simple : prendre une donnée de type double en cherchant dans la BDD à partir d'une variable de type String.
J'ai fait le code, ça devrait marcher (et je l'ai fait de deux façons complètement différentes), MAIS, lorsque je veux pour rechercher cette valeur, il me dit qu'il n'arrive pas à convertir une donnée de la table de type String en donnée de type Integer, ce qui est normal ! Là où je ne capte pas, c'est pourquoi il s’entête à vouloir convertir cette p***** de donnée alors que je ne lui demande pas ! voici le code : (et, amis puristes, vous noterez que j'ai fait ça dans les règles de l'art!)
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
| Private Function GetStressAllowTemperature(ByVal TempCelsius As String, ByVal ProductForm As String, ByVal Nom As String, ByVal Taille As Double) As Double
Dim indiceLH As String = "c"
Dim indiceOut As Int16 = 0
Dim RequeteSQL As String = "SELECT * FROM P_ASME_SI WHERE Nom='" & Nom & "'"
Dim dt As System.Data.DataTable
Dim i As Integer = 0
Dim cn As New SqlConnection
Dim cmd As New SqlCommand
Dim ds As New DataSet
Dim da As SqlDataAdapter
Dim connectionstring As String = "Data Source=SV4203******;Initial Catalog=bas****;Persist Security Info=True;User ID=*******;Password=*******"
Dim Table_P_ASME_SI As System.Data.DataTable
Dim ligne As DataRowView
Dim ligneTrouvees() As DataRowView
Dim criteres() As Object
cn = New SqlConnection(connectionstring)
cn.Open()
cmd.Connection = cn
cmd.CommandText = "SELECT * from P_ASME_SI"
da = New SqlDataAdapter(cmd)
da.Fill(ds, "P_ASME_SI")
Table_P_ASME_SI = ds.Tables("P_ASME_SI")
Table_P_ASME_SI.DefaultView.Sort = "Product_Form ASC, Nom ASC, LowHigh ASC"
criteres = (New Object() {ProductForm, Nom, indiceLH})
ligneTrouvees = Table_P_ASME_SI.DefaultView.FindRows(criteres)
If ligneTrouvees.Length = 0 Then
MsgBox("Il n'y a pas de valeurs pour le matériau choisi.")
Else
For Each ligne In ligneTrouvees
MsgBox("Nom : {0}", ligne("Nom")) 'il bug ici, tout à la fin !!! Texte de l'erreur mis juste après
Next
End If |
"La conversion de la chaîne "SB-5445" en type 'Integer' n'est pas valide." Mais pourquoi il s'obstine ? :/