Ce petit bout de code permet d'ouvrir une connection a un serveur SQL Server, et d'y effectuer des requetes en tout genre (selections, insertions, modifications, suppressions, ...). Le petit probleme est que les requetes parametrees ne sont pas valides (pourquoi, je ne sais pas encore). D'ailleurs si quelqu'un a une solution, merci). Sinon, pas de probleme rencontre. Utile pour les debutants...
Un seul truc a ajouter : un sub Main() qui appelle le subMain(), du genre :
Sub Main()
subMain()
End Sub
...pour faire simple...
Source / Exemple :
Imports System.Data
Imports System.Data.SqlClient
' Debut du Module SQL Server ---------------------------
Public Module ModuleBase
Public SQL_Server As String = "nom du serveur SQL"
Public SQL_Base As String = "nom de la base de donnees"
Public req As String = ""
Public Colonne As String
Public mode As String
Public table As String
Public code As String
Public valeur_Insert As String
Public condition_Delete As String
Public valid As String
Public selection As String
Public test As String
' Renvoie un Datareader à partir de la requête transmise.
Public Function SQL_Reader(ByVal Req_SQL As String) As SqlDataReader
Dim oConn As SqlConnection
oConn = New SqlConnection()
Try
oConn.ConnectionString = "server=" & SQL_Server & ";database=" & SQL_Base & ";trusted_connection=true"
'Pour sauter la verification d'utilisateur
oConn.Open()
Dim myCommand As SqlCommand = New SqlCommand(Req_SQL, oConn)
Dim monSQL_Reader As SqlDataReader = myCommand.ExecuteReader(CommandBehavior.CloseConnection)
SQL_Reader = monSQL_Reader
'Lire infos tant qu'il y en a.
Do While monSQL_Reader.Read()
System.Console.WriteLine(monSQL_Reader("CODE").ToString())
System.Console.WriteLine(monSQL_Reader("NOM").ToString())
'les retourner
Loop
Catch err As Exception
MsgBox("Il y a eu une erreur de connection (SQL_Reader) : " + err.Message)
Finally
oConn.Close()
oConn = Nothing
End Try
End Function
' Exécute directement la requête transmise sans renvoyer de résultat.
Public Function SQL_Execute(ByVal Req_SQL As String)
Dim oConn As SqlConnection
oConn = New SqlConnection()
Try
oConn.ConnectionString = "server=" & SQL_Server & ";database=" & SQL_Base & ";trusted_connection=true"
oConn.Open()
Dim myCommand As SqlCommand = New SqlCommand(Req_SQL, oConn)
myCommand.ExecuteNonQuery()
MsgBox("Executée...\n")
Catch err As Exception
MsgBox("Il y a eu une erreur de connection (SQL_Execute) : " + err.Message)
Finally
oConn.Close()
oConn = Nothing
End Try
End Function
' Teste si le champs envoyé est null et dans ce cas lui attribue la valeur de Base
Public Function TestNull(ByVal Champs As Object, _
ByVal ValDefaut As Object)
If IsDBNull(Champs) Then
TestNull = ValDefaut
Else
TestNull = Champs
End If
End Function
'Fonction de requete générale : sélectionne la fonction à lancer selon le premier parametre qui est le mode (insert, delete)
Public Function MyRequest(ByVal theMode As String, _
ByVal nomTable As String, _
ByVal CodeOuColonne As String, _
ByVal valeur As String)
Select Case (theMode)
Case "insert"
MyInsert(nomTable, CodeOuColonne, valeur)
Case "delete"
MyDelete(nomTable, CodeOuColonne, valeur)
End Select
End Function
'Fonction d'insertion
Public Function MyInsert(ByVal nomTable As String, _
ByVal theCode As String, _
ByVal theNom As String)
Try
req = "insert into " & nomTable & " values (" & theCode & ", " & theNom & ")"
SQL_Execute(req)
MsgBox("Try : Insertion effectuée...")
Catch err As Exception
MsgBox("Catch Insert: pas marché !")
Finally
MsgBox("Finally Insert")
End Try
End Function
'Fonction de suppression
Public Function MyDelete(ByVal nomTable As String, _
ByVal nomColonne As String, _
ByVal valeur As String)
Try
req = "delete from " & nomTable & " where " & nomColonne & "=" & valeur & ""
SQL_Execute(req)
MsgBox("Try : delete OK effectuée...")
Catch err As Exception
MsgBox("Catch Delete: pas marché !")
Finally
MsgBox("Finally Delete")
End Try
End Function
Public Function MySelect(ByVal nomTable As String, _
ByVal quoi As String, _
ByVal theColonne As String, _
ByVal test As String)
req = "select " & quoi & " from " & nomTable
If (theColonne <> "") Then
req &= " where " & theColonne & "=" & test & ""
End If
Try
SQL_Reader(req)
Catch err As Exception
MsgBox("Catch Select: " + err.Message)
Finally
End Try
End Function
Public Function sortir() As Boolean
Console.WriteLine("Quitter ? Y/N : ")
valid = Console.ReadLine
valid = valid.ToUpper
While (valid <> "Y") And (valid <> "N")
Console.WriteLine("Invalid Character ! Y/N :")
valid = Console.ReadLine
valid = valid.ToUpper
End While
Select Case (valid)
Case "Y"
sortir = True
Case "N"
sortir = False
End Select
End Function
Public Function MySelect()
Console.WriteLine("Champs à afficher : ")
selection = Console.ReadLine
Console.WriteLine("Table ? : ")
table = Console.ReadLine
Console.WriteLine("Nom de colonne : ")
Colonne = Console.ReadLine
Console.WriteLine("Valeur de test : ")
test = Console.ReadLine
Try
MySelect(table, selection, Colonne, test)
Catch err As Exception
MsgBox("Erreur dans le select : " + err.Message)
Finally
End Try
End Function
Public Function InsertOrDelete(ByVal mode As String)
Console.WriteLine("Table ? : ")
table = Console.ReadLine
If (mode = "I") Then
Console.WriteLine("Code ? :")
code = Console.ReadLine
code = code.ToUpper
mode = "insert"
Console.WriteLine("Valeur ? :")
valeur_Insert = Console.ReadLine
MyRequest(mode, table, code, valeur_Insert)
Else
mode = "delete"
Console.WriteLine("Colonne de test ? : ")
Colonne = Console.ReadLine
Console.WriteLine("Condition ? : ")
condition_Delete = Console.ReadLine
MyRequest(mode, table, Colonne, condition_Delete)
End If
End Function
Public Function reqManu()
Console.WriteLine("texte de la requete ? :")
req = Console.ReadLine
Try
SQL_Reader(req)
Catch err As Exception
MsgBox("Erreur de synthaxe sur la requete ... ")
Finally
End Try
End Function
Public Function menu()
Console.WriteLine("Entrer le mode :")
Console.WriteLine("s->Select, i->Insertion, d->Delete, m->req manu, q->quitter")
mode = Console.ReadLine
mode = mode.ToUpper
End Function
Public Function subMain()
menu()
Do
Select Case (mode)
Case "S"
MySelect()
Case "I", "D"
InsertOrDelete(mode)
Case "Q"
If sortir() Then
Exit Function
Else
Exit Select
End If
Case "M"
reqManu()
Case Else
Console.WriteLine("Mode non valide ! ")
End Select
Console.WriteLine("")
menu()
Loop
End Function
End Module
'------- Fin du Module SQL Server ---------------------------
Conclusion :
Un grand merci aux premieres sources, et surtout a Totoff' !
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.