Asp.net - fonctions de requettes pour des connexion via odbc

Contenu du snippet

Sur le même principe de la connexion à une base MySQL, voici quelques petites fonctions permettant de se connecter un n'importe quelle source de données (du moment qu'un Lien DSN système est créé sur le serveur WEB).

Ces fonctions sont valables pour le cas d'une machine sous FrameWork 1.0 ayant installé ODBC.NET.

Pour une question de simplicité d'utilisation, je les ai regroupé dans une class qu'il vous suffit d'intégrer dans un fichier xxx.vb qui sera dans votre projet.

Source / Exemple :


Imports Microsoft.Data.Odbc
Imports System.Web

' ------------------------------------------------------------------------------------
Public Class ODBC_Requettes
 ' ------------------------------------------------------------------------------------
 Public Shared Function MyODBCReader(ByVal ReqSQL As String, ByVal MaConnexionString As String) As OdbcDataReader
 ' Connexion à un server via ODBC avec requette qui renvoie un datareader
  
  Dim MyODBCConnexion As New OdbcConnection(MaConnexionString)

  Try
   Dim MyCommand As New OdbcCommand()
   Dim MyDataReader As OdbcDataReader

   MyODBCConnexion.ReleaseObjectPool()
   MyODBCConnexion.Open()
   MyCommand.Connection = MyODBCConnexion
   MyCommand.CommandText = ReqSQL
   MyDataReader = MyCommand.ExecuteReader(CommandBehavior.CloseConnection)
   MyODBCReader = MyDataReader
   MyODBCConnexion.ReleaseObjectPool()
  Catch MyOdbcException As OdbcException
   HttpContext.Current.Trace.Write(MyOdbcException.ToString)
  Catch MyException As Exception
   HttpContext.Current.Trace.Write(MyException.ToString)
  Finally
   If Not (MyODBCConnexion Is Nothing) Then
    MyODBCConnexion.Close()
    MyODBCConnexion = Nothing
   End If
  End Try
 End Function

 ' --------------------------------------------------------------------------
 Public Shared Function MyODBCDataset(ByVal ReqSQL As String, ByVal MaConnexionString As String, ByVal NomDataTable As String) As DataSet
 ' Connexion à un server via ODBC avec le Driver ODBC 3.51 avec requette qui renvoie un dataset
 
  Dim MyODBCConnexion As New OdbcConnection(MaConnexionString)
  Try
   Dim ds As New DataSet()
   Dim cmd As OdbcDataAdapter = New OdbcDataAdapter(ReqSQL, MyODBCConnexion)
   Dim MyCommand As New OdbcCommand()
   Dim MyDataReader As OdbcDataReader

   cmd.Fill(ds, NomDataTable)
   Return ds
  Catch MyOdbcException As OdbcException
   HttpContext.Current.Trace.Write(MyOdbcException.ToString)
  Catch MyException As Exception
   HttpContext.Current.Trace.Write(MyException.ToString)
  Finally
   If Not (MyODBCConnexion Is Nothing) Then
    MyODBCConnexion.Close()
    MyODBCConnexion = Nothing
   End If
  End Try
 End Function

 ' ------------------------------------------------------------------------------------
 Public Shared Function MyODBCExecute(ByVal ReqSQL As String, ByVal MaConnexionString As String)
 ' Connexion à un serveur via ODBC qui exécute une requette (insert, delete ou update)

  Dim MyODBCConnexion As New OdbcConnection(MaConnexionString)

   Try
    Dim MyCommand As New OdbcCommand()
    Dim MyDataReader As OdbcDataReader

    MyODBCConnexion.Open()
    MyCommand.Connection = MyODBCConnexion
    MyCommand.CommandText = ReqSQL
    MyCommand.ExecuteNonQuery()
    MyODBCConnexion.ReleaseObjectPool()
   Catch MyOdbcException As OdbcException
    HttpContext.Current.Trace.Write(MyOdbcException.ToString)
   Catch MyException As Exception
    HttpContext.Current.Trace.Write(MyException.ToString)
   Finally
    If Not (MyODBCConnexion Is Nothing) Then
     MyODBCConnexion.Close()
     MyODBCConnexion = Nothing
    End If
   End Try
  End Function

  ' ------------------------------------------------------------------------------------
 End Class

==================================
' Pour utiliser cette classe il suffira donc de faire comme dans l'exemple suivant :

Protected WithEvents DataGridResultats As System.Web.UI.WebControls.DataGrid

....

Dim MaConnexionString As String = "DSN=MonDSN;uid=MonLogin;pwd=MonPass"

Dim MaRequetteSQL As String = "SELECT * FROM MaTable;"
Dim MaDatasetResultat As DataSet

MaDatasetResultat = ODBC_Requettes.MyODBCDataset(MaRequetteSQL, MaConnexionString, "ListeResultats")

DataGridResultats.DataSource = MaDatasetResultat.Tables("ListeResultats")
DataGridResultats.DataBind()

MaDatasetResultat.Dispose()

Conclusion :


Cette classe est à adapter pour les développeur travaillant sous le FrameWork 1.1.

Bon Coding

Romelard Fabrice (Alias F___)

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.