Meizen
Messages postés2Date d'inscriptiondimanche 28 février 2010StatutMembreDernière intervention13 mars 2010
-
7 mars 2010 à 15:11
Meizen
Messages postés2Date d'inscriptiondimanche 28 février 2010StatutMembreDernière intervention13 mars 2010
-
13 mars 2010 à 18:04
Bonjour, je suis nouveau sur le site et c'est ma .... 20éme recherche ^^
Bon voila, j'ai un problème avec mon code (je vous le met et explique ce qui cloche en dessous ;))
Imports System.Data.OleDb
Imports ADOX
Public Class BDD
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
' CREATION de la Base
Dim i As Integer = 1
Dim NomBase As String = "Bulletin" ' <=> Tablename
Dim databasename As String
If (i > 0) Then
databasename = InputBox("Quel est le nom de la base ? ( Elle sera enregistrée sous le D:\ )")
Label2.Text = databasename
If (databasename <> "") Then
Dim catX = New ADOX.Catalog
catX.Create("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:" & databasename & ".mdb")
MsgBox("La base a bien été crée !")
catX = Nothing
' Creation des Tables
Dim table1 As New OleDb.OleDbConnection("PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source =D:" & databasename & ".mdb")
' <=> con
table1.Open()
Dim dbSchema As DataTable = table1.GetOleDbSchemaTable(OleDb.OleDbSchemaGuid.Tables, New Object() {Nothing, Nothing, NomBase, "TABLE"})
table1.Close()
If dbSchema.Rows.Count > 0 Then
Else
If dbSchema.Rows.Count > 0 Then
' On fait se que l'on veut
Else
' e.g. create a table
Dim cmd As New OleDb.OleDbCommand("CREATE TABLE [" + NomBase + "] ([NOM] TEXT(10), [PRENOM] TEXT(10), [MATIERE] TEXT(10), [MOYENNE] DOUBLE)", table1)
table1.Open()
cmd.ExecuteNonQuery()
MessageBox.Show("Tables bien créées")
table1.Close()
i = 0
End If
End If
End If
End If
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
'AJOUTER
Dim cn As OleDbConnection
Dim cmd As OleDbCommand
Dim dr As OleDbDataReader
Dim icount As Integer
Dim nom, prenom As String
Try
cn = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:" & Label2.Text & ".mdb;")
cn.Open()
nom = GestionBul.TextBox1.Text
prenom = GestionBul.TextBox2.Text
If (nom <> "NR") Then
'string stores the command and CInt is used to convert number to string
cmd = New OleDbCommand("insert into Bulletin : table1 values('" & nom & "','" & prenom & "')", cn)
MsgBox("Les informations ont été ajoutés", MsgBoxStyle.OkOnly, "Info")
icount = cmd.ExecuteNonQuery
End If
MessageBox.Show(icount)
cn.Close()
Catch
End Try
End Sub
End Class
Alors voila, la création de la base se passe bien, aucun problème à ce niveau.
Cependant, c'est lors de l'ajout que sa ne marche pas et je ne comprend pas pourquoi car je n'ai pas d'erreurs dans mon code =/
J'ai l'impression que sa n'ouvre même pas la BDD car les tables restent vierges !
Si quelqu'un peu m'aider la dessus, c'est avec plaisir :)
cs_huntershiva
Messages postés12Date d'inscriptionmardi 15 décembre 2009StatutMembreDernière intervention10 mars 2010 10 mars 2010 à 11:06
a mon avis, il faut que tu établisse une connexion entre ton projet VB et ta base de données aprés.
c'est pas le tout de la créer il faut ensuite la linker, moi je le fait manuellement aprés en ligne de code je ne saurais pas te dire ....
Meizen
Messages postés2Date d'inscriptiondimanche 28 février 2010StatutMembreDernière intervention13 mars 2010 13 mars 2010 à 18:04
J'ai une bonne nouvelle, sa marche
le problème venais de la :
Dim NomBase As String = "Bulletin" '
Je ne sais pas pourquoi, mais je suis obligé de mettre table1 pour que sa marche, même si par la suite j'utilise bien NomBase pour modifier .... C'est louche ^^
Sinon, oui je crée une base de donné, les tables, je peux les modifier, les lister, ajouter et supprimer dedans sans problèmes !
Reste la récupération à faire mais j'ai déjà le projet en tête !
J'ai pas vérifier si il y avait un tuto simple pour créer une base rapidement, s'il n'y a pas je peux en faire une toute bête que les débutants comprendront ;)