[.NET] Création base de donnée

Sniper_Vgaerr Messages postés 113 Date d'inscription jeudi 2 décembre 2004 Statut Membre Dernière intervention 14 août 2006 - 18 janv. 2006 à 13:49
nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 - 19 janv. 2006 à 23:09
Bonjour,

J'aurais voulu savoir comment faire pour créer une base de donnée ainsi que des tables avec ses champs dedans. J'ai cherché sur le site mais j'ai rien trouvé de concluant.
Je sais pas si ca peux vous aider, mais voici le code que j'utilise pour me connecter à la base de donnée. En fait j'aimerais pouvoir créer cette base de donnée et lui rajouter des tables dynamiquement.



Dim ds
As DataSet



Dim cnx
As OleDb.OleDbConnection



Dim da
As OleDb.OleDbDataAdapter



Dim i
As Int16


cnx =
New OleDb.OleDbConnection("provider microsoft.jet.oledb.4.0 ; data source " & Application.StartupPath &
"\Clients.mdb;")



Try


cnx.Open()


da =
New OleDb.OleDbDataAdapter(
"select NClient,Societe,Tel,Port,Ville from [" &
Me.Classeur.SelectedItem &
"]", cnx)

ds =
New DataSet
da.Fill(ds)


ListView1.Clear()
ListView1.View = View.Details
ListView1.Columns.Add(
"N°Client", 60, HorizontalAlignment.Left)
ListView1.Columns.Add(
"Société", 250, HorizontalAlignment.Left)
ListView1.Columns.Add(
"Téléphone", 100, HorizontalAlignment.Left)
ListView1.Columns.Add(
"Portable", 100, HorizontalAlignment.Left)
ListView1.Columns.Add(
"Ville", 150, HorizontalAlignment.Left)

For i = 0
To ds.Tables(0).Rows.Count - 1



Dim list = ListView1.Items.Add(ds.Tables(0).Rows(i).Item(0))
list.SubItems.Add((ds.Tables(0).Rows(i).Item(1)))
list.SubItems.Add((ds.Tables(0).Rows(i).Item(2)))
list.SubItems.Add((ds.Tables(0).Rows(i).Item(3)))
list.SubItems.Add((ds.Tables(0).Rows(i).Item(4)))

Next i



Catch ex
As Exception


MsgBox(
"Une erreur est survenue dans le chargement de la base de donnée Clients.mdb", MsgBoxStyle.Critical,
"Erreur base de donnée.")


Debug.Write(ex.Message)
Debug.Write(ex.StackTrace)



Finally


cnx.Close()
cnx.Dispose()
cnx =
Nothing



End
Try

Merci d'avance

4 réponses

nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 37
18 janv. 2006 à 23:02
Salut

Pour la creation des tables dynamiques en access, il n'y a pas de methode miracle.

Dim cmd3 As OleDb.OleDbCommand = New OleDb.OleDbCommand("Create table test(id int)")
cmd3.Connection = cn
cmd3.ExecuteNonQuery()

Sinon tu as la possibilité de passer par la bibliotheque ADOX,
c'est du COM donc lent.
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/ado270/htm/admscadoapireference.asp

voila
0
Sniper_Vgaerr Messages postés 113 Date d'inscription jeudi 2 décembre 2004 Statut Membre Dernière intervention 14 août 2006
19 janv. 2006 à 13:56
Salut,

J'ai mis ca en code, et ca ne marche pas, aurais tu une idée, merci :



Dim cnx
As OleDb.OleDbConnection


cnx =
New OleDb.OleDbConnection("provider microsoft.jet.oledb.4.0 ; data source " & Application.StartupPath &
"\Clients.mdb;")



Try



Dim Cmd
As OleDb.OleDbCommand =
New OleDb.OleDbCommand(
"CREATE TABLE test(id int)")


Cmd.Connection = cnx


Cmd.ExecuteNonQuery() ' Erreur ICI



Catch ex
As Exception


MsgBox(
"Une erreur est survenue dans la création de la table de la base de donnée Clients.mdb", MsgBoxStyle.Critical,
"Erreur base de donnée.")


Debug.Write(ex.Message)


Debug.Write(ex.StackTrace)



Finally


cnx.Close()


cnx.Dispose()


cnx =
Nothing



End
Try

Merci d'avance
0
Dalida Messages postés 6728 Date d'inscription mardi 14 mai 2002 Statut Contributeur Dernière intervention 11 janvier 2016
19 janv. 2006 à 19:15
salut



si tu veux essayer avec ADOX :



''' <summary>

''' Ajoute une nouvelle table à la collection de table du catalog interne

''' </summary>

''' <returns>La table créée ou Nothing</returns>

Private Function AppendTable(ByVal name As String, ByVal cnString As String) As ADOX.Table



Dim catalog As New ADOX.Catalog



catalog.let_ActiveConnection(cnString)



Dim newTable As New ADOX.Table



Try



With newTable



.Name = name

.ParentCatalog = catalog



End With



Catalog.Tables.Append(newTable)



Return newTable



Catch



Return Nothing



Finally



newTable = Nothing

Catalog = Nothing



End Try



End Function



[ Dalida ]
0
nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 37
19 janv. 2006 à 23:09
Salut,

Je ne comprends pas d'ou à pu venir l'erreur car chez la methode avec le create table à fonctionner.

Mais je conseille quand meme ADOX.
0
Rejoignez-nous