- Imports System.IO
- Imports System.Data
- Imports System.Data.SqlServerCe
- Imports System.Text
- Public CheminCourant As String = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly.GetName.CodeBase)
- Public Const ListeSeparation As String = ","
- Public Const FichierSQL = "\MaBase.sdf"
- Public Const FicGare = "\listeScores.txt"
- #Region "Maintenance Base SQL ExistanTe(ou pas)"
- Public Function CréateDB()
- 'Cette procédure permet de vérifier l'existence de la base SDF
- 'Si elle n'existe pas on la crée
- If Not File.Exists(CheminCourant & FichierSQL) Then
- VerifieDB = False
- MsgBox("tentative de reconstruire les bases de données")
- 'On refabrique la base
- If CreateBase() = True Then
- MsgBox("Création de la Base")
- Else
- MsgBox("Impossible de créer la BD")
- Exit Function
- End If
- ChargeBaseScore()
- VerifieDB = True
- Else
- VerifieDB = True
- End If
- End Function
- Public Function CreateBase() As Boolean
- CreateBase = False
- Dim cu_sql As String
- Dim MySqlCeEngine As New SqlCeEngine("Data Source=" & CheminCourant & FichierSQL)
- MySqlCeEngine.CreateDatabase()
- MySqlCeEngine.Dispose()
- Dim maconnexion As SqlCeConnection = Nothing
- Try
- maconnexion = New SqlCeConnection(("Data Source=" & CheminCourant & FichierSQL))
- maconnexion.Open()
- Dim mycmd As SqlCeCommand
- mycmd = maconnexion.CreateCommand
- 'Ici implémenter la lecture d'un fichier SQL.
- 'Base Score
- cu_sql = "CREATE TABLE Score(Nom ntext,Prenom ntext, Score int)"
- MsgBox(cu_sql)
- mycmd.CommandText = cu_sql
- mycmd.ExecuteNonQuery()
- MsgBox("Creation base Score: Succès")
- maconnexion.Close()
- CreateBase = True
- Catch ex As Exception
- MsgBox(ex.Message, MsgBoxStyle.Exclamation)
- End Try
- End Function
- Public Sub ChargeBaseScore()
- MsgBox(" debut chargement gares")
- Cursor.Current = Cursors.WaitCursor
- Dim Req_sql As String
- Dim sr As StreamReader = New StreamReader(CheminCourant & FicGare)
- Dim StrInput As String
- Dim StrData() As String
- Dim maconnexion As SqlCeConnection = Nothing
- Try
- maconnexion = New SqlCeConnection(("Data Source=" & CheminCourant & FichierSQL))
- maconnexion.Open()
- Dim mycmd As SqlCeCommand
- mycmd = maconnexion.CreateCommand
- Do
- StrInput = sr.ReadLine
- If StrInput Is Nothing Then GoTo suite
- StrData = StrInput.Split(ListeSeparation)
- StrData(0) = Replace(StrData(0), "'", "''")
- Req_sql = "INSERT INTO Gare(Nom, Prenom, Score ) VALUES ('" & StrData(0) & "','" & StrData(1) & "'," & StrData(2) & ");"
- mycmd.CommandText = Req_sql
- mycmd.ExecuteNonQuery()
- Loop Until StrInput Is Nothing
- suite:
- MsgBox("Fin de Chargement Score")
- sr.Close()
- maconnexion.Dispose()
- maconnexion.Close()
- Catch ex As Exception
- ShowErrors(ex)
- sr.Close()
- maconnexion.Dispose()
- maconnexion.Close()
- 'MsgBox(ex.Message, MsgBoxStyle.Exclamation)
- End Try
- Cursor.Current = Cursors.Default
- End Sub
- Public Sub ShowErrors(ByVal e As SqlCeException)
- Dim errorCollection As SqlCeErrorCollection = e.Errors
-
- Dim bld As New StringBuilder
- Dim inner As Exception = e.InnerException
-
- If Not inner Is Nothing Then
- MessageBox.Show(("Inner Exception: " & inner.ToString()))
- End If
-
- Dim err As SqlCeError
-
- ' Enumerate each error to a message box.
- For Each err In errorCollection
- bld.Append((ControlChars.Cr & " Error Code: " & err.HResult.ToString("X")))
- bld.Append((ControlChars.Cr & " Message : " & err.Message))
- bld.Append((ControlChars.Cr & " Minor Err.: " & err.NativeError))
- bld.Append((ControlChars.Cr & " Source : " & err.Source))
-
- ' Retrieve the error parameter numbers for each error.
- Dim numPar As Integer
- For Each numPar In err.NumericErrorParameters
- If 0 <> numPar Then
- bld.Append((ControlChars.Cr & " Num. Par. : " & numPar))
- End If
- Next numPar
-
- ' Retrieve the error parameters for each error.
- Dim errPar As String
- For Each errPar In err.ErrorParameters
- If [String].Empty <> errPar Then
- bld.Append((ControlChars.Cr & " Err. Par. : " & errPar))
- End If
- Next errPar
-
- MessageBox.Show(bld.ToString())
- bld.Remove(0, bld.Length)
- Next err
- End Sub
- #End Region
-
Imports System.IO
Imports System.Data
Imports System.Data.SqlServerCe
Imports System.Text
Public CheminCourant As String = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly.GetName.CodeBase)
Public Const ListeSeparation As String = ","
Public Const FichierSQL = "\MaBase.sdf"
Public Const FicGare = "\listeScores.txt"
#Region "Maintenance Base SQL ExistanTe(ou pas)"
Public Function CréateDB()
'Cette procédure permet de vérifier l'existence de la base SDF
'Si elle n'existe pas on la crée
If Not File.Exists(CheminCourant & FichierSQL) Then
VerifieDB = False
MsgBox("tentative de reconstruire les bases de données")
'On refabrique la base
If CreateBase() = True Then
MsgBox("Création de la Base")
Else
MsgBox("Impossible de créer la BD")
Exit Function
End If
ChargeBaseScore()
VerifieDB = True
Else
VerifieDB = True
End If
End Function
Public Function CreateBase() As Boolean
CreateBase = False
Dim cu_sql As String
Dim MySqlCeEngine As New SqlCeEngine("Data Source=" & CheminCourant & FichierSQL)
MySqlCeEngine.CreateDatabase()
MySqlCeEngine.Dispose()
Dim maconnexion As SqlCeConnection = Nothing
Try
maconnexion = New SqlCeConnection(("Data Source=" & CheminCourant & FichierSQL))
maconnexion.Open()
Dim mycmd As SqlCeCommand
mycmd = maconnexion.CreateCommand
'Ici implémenter la lecture d'un fichier SQL.
'Base Score
cu_sql = "CREATE TABLE Score(Nom ntext,Prenom ntext, Score int)"
MsgBox(cu_sql)
mycmd.CommandText = cu_sql
mycmd.ExecuteNonQuery()
MsgBox("Creation base Score: Succès")
maconnexion.Close()
CreateBase = True
Catch ex As Exception
MsgBox(ex.Message, MsgBoxStyle.Exclamation)
End Try
End Function
Public Sub ChargeBaseScore()
MsgBox(" debut chargement gares")
Cursor.Current = Cursors.WaitCursor
Dim Req_sql As String
Dim sr As StreamReader = New StreamReader(CheminCourant & FicGare)
Dim StrInput As String
Dim StrData() As String
Dim maconnexion As SqlCeConnection = Nothing
Try
maconnexion = New SqlCeConnection(("Data Source=" & CheminCourant & FichierSQL))
maconnexion.Open()
Dim mycmd As SqlCeCommand
mycmd = maconnexion.CreateCommand
Do
StrInput = sr.ReadLine
If StrInput Is Nothing Then GoTo suite
StrData = StrInput.Split(ListeSeparation)
StrData(0) = Replace(StrData(0), "'", "''")
Req_sql = "INSERT INTO Gare(Nom, Prenom, Score ) VALUES ('" & StrData(0) & "','" & StrData(1) & "'," & StrData(2) & ");"
mycmd.CommandText = Req_sql
mycmd.ExecuteNonQuery()
Loop Until StrInput Is Nothing
suite:
MsgBox("Fin de Chargement Score")
sr.Close()
maconnexion.Dispose()
maconnexion.Close()
Catch ex As Exception
ShowErrors(ex)
sr.Close()
maconnexion.Dispose()
maconnexion.Close()
'MsgBox(ex.Message, MsgBoxStyle.Exclamation)
End Try
Cursor.Current = Cursors.Default
End Sub
Public Sub ShowErrors(ByVal e As SqlCeException)
Dim errorCollection As SqlCeErrorCollection = e.Errors
Dim bld As New StringBuilder
Dim inner As Exception = e.InnerException
If Not inner Is Nothing Then
MessageBox.Show(("Inner Exception: " & inner.ToString()))
End If
Dim err As SqlCeError
' Enumerate each error to a message box.
For Each err In errorCollection
bld.Append((ControlChars.Cr & " Error Code: " & err.HResult.ToString("X")))
bld.Append((ControlChars.Cr & " Message : " & err.Message))
bld.Append((ControlChars.Cr & " Minor Err.: " & err.NativeError))
bld.Append((ControlChars.Cr & " Source : " & err.Source))
' Retrieve the error parameter numbers for each error.
Dim numPar As Integer
For Each numPar In err.NumericErrorParameters
If 0 <> numPar Then
bld.Append((ControlChars.Cr & " Num. Par. : " & numPar))
End If
Next numPar
' Retrieve the error parameters for each error.
Dim errPar As String
For Each errPar In err.ErrorParameters
If [String].Empty <> errPar Then
bld.Append((ControlChars.Cr & " Err. Par. : " & errPar))
End If
Next errPar
MessageBox.Show(bld.ToString())
bld.Remove(0, bld.Length)
Next err
End Sub
#End Region