SqlCommand, Parameters avec ou sans le type ?

dudulebzh35 Messages postés 23 Date d'inscription mardi 23 novembre 2004 Statut Membre Dernière intervention 8 juin 2009 - 1 août 2008 à 11:53
youpiyoyo Messages postés 539 Date d'inscription vendredi 6 juin 2003 Statut Membre Dernière intervention 14 juillet 2010 - 1 août 2008 à 15:13
Bonjour,
J'ai juste une question (et non un problème). J'ai une connexion SqlServer a une base de données. Et j'ai donc un objet SqlCommand auquel je passe des parametres.
Or dans les différentes fonctions d'ajout de SqlParameter, on a la possibilité de passer le type de la donnée.
cmd.Parameter.Add(nParam, vColumn) ou
cmd.Parameter.Add(nParam, sqlDbType) ou
cmd.Parameter.Add(nParam, sqlDbType, size) ou ....
Ma question etait donc de savoir si le fait de donner le type de la colonne (sqlDBType) a des conséquences ou pas sur la requete ? (mauvais format en base ou autre anomalies).
En vous remerciant de vos commentaires.
Kenavo

 

1 réponse

youpiyoyo Messages postés 539 Date d'inscription vendredi 6 juin 2003 Statut Membre Dernière intervention 14 juillet 2010
1 août 2008 à 15:13
Salut,
Ou cela a un impact.
voici un exemple: d'une generation d'un sqlparameter
        Dim parameter As SqlClient.SqlParameter
        For Each col As DataColumn In Me.MonDataset.Tables(TableName).Columns
            parameter = command.Parameters.Add(New Global.System.Data.SqlClient.SqlParameter("@" + col.ColumnName, GetDBType(col.DataType), 0, Global.System.Data.ParameterDirection.Input, 0, 0, col.ColumnName, Global.System.Data.DataRowVersion.Current, False, Nothing, "", "", ""))
        Next

o cas ou cela peut te servir cette fonction pour passer d'un datatype a sqldbtype
    Private Function GetDBType(ByVal theType As System.Type) As SqlDbType
        Dim p1 As SqlClient.SqlParameter
        Dim tc As System.ComponentModel.TypeConverter
        p1 = New SqlClient.SqlParameter()
        tc = System.ComponentModel.TypeDescriptor.GetConverter(p1.DbType)
        If tc.CanConvertFrom(theType) Then
            p1.DbType = tc.ConvertFrom(theType.Name)
        Else
            'Try brute force
            Try
                p1.DbType = tc.ConvertFrom(theType.Name)
            Catch ex As Exception
                'Do Nothing
            End Try
        End If
        Return p1.SqlDbType
    End Function
@+
youpi :)
0
Rejoignez-nous