|
Site |
Cours VB.net |
|
|
|
Créer une base de données. Ajouter une table. |
|
|
Comment créer une base de données
Comment ajouter une table?
Pour consulter une base de données vous pouvez utiliser L'explorateur de serveurs.
Pour accéder à l'Explorateur de serveurs, sélectionnez Explorateur de serveurs dans le menu Affichage et regarder la doc.
Créer une base de données:
Base Access.
Avec un Provider OleDB: (System.Data.OLEDB) impossible de créer une BD Access par du code.
On rappelle qu'on peut créer rapidement une BD Access 'à la main':
Sur le fond d'écran: Bouton droit->Nouveau->Application Microsoft Access
Si on veut absolument créer une BD Access par code, il faut passer par DAO.
Référence: ajouter le composant COM 'Microsoft DAO 3.6 Library 5'
Imports DAO Imports DAO.LanguageConstants Dim result As Boolean = False Dim dbe As New DBEngine Dim db As Database Trydb = dbe.CreateDatabase("c:\test.mdb", dbLangGeneral)
If Not (db Is Nothing) Then result = True Catch ex As Exception : MsgBox(ex.Message) Finally : If Not (db Is Nothing) Then db.Close() End TryEnsuite, on peut travailler en OleDB.
(merci les forums de developpez.com)
SqlServer.
Avec un Provider SqlServer: (System.Data.SqlClient) on peut créer une BD Sql Server par du code.
Exemple:
Const SQL_CONNECTION_STRING As String = _Protected
"Server=localhost;" & _
"DataBase=;" & _
"Integrated Security=SSPI"
Dim
strSQL As String = _"IF EXISTS (" & _
"SELECT * " & _
"FROM master..sysdatabases " & _
"WHERE Name = 'HowToDemo')" & vbCrLf & _
"DROP DATABASE HowToDemo" & vbCrLf & _
"CREATE DATABASE test"
Dim northwindConnection As New SqlConnection(connectionString) Dim cmd As New SqlCommand(strSQL, northwindConnection)
northwindConnection.Open()
cmd.ExecuteNonQuery()
northwindConnection.Close()
Code non testé.
Ajouter une table à une BD existante:
Dans un Dataset, on peut ajouter des données puis par un update mettre à jour la base de données.
On peut aussi ajouter des tables en local dans le Dataset, mais updater la base ne rajoute pas les tables dans la base.
Comment donc ajouter une table à la base?
En fait pour ajouter une table à la base il faut le faire avec l'objet Command et sa méthode ExecuteNoQuery et une requête SQL:
On crée une Connexion et un objet Command, on indique à la propriété TypeCommand que l'on envoie du texte (pas une procédure stockée), on prépare le texte SQL avec CREATE puis on exécute avec ExecuteNoQuery.
Exemple :
Il existe une BD Acces nommée NOM.MDB , je veux y ajouter une Table nommée PARENT avec 3 champs CLI_ID CLI_NOM CLI_PRENOM:
Imports
SystemImports
System.DataImports
System.Data.OleDb
Dans la zone déclaration de la fenêtre:
'Déclarer la connexion
Private
ObjetConnection As OleDbConnection ' Déclaration l'Objet Commande Private ObjetCommand As OleDbCommand
'Paramètres de connexion à la DB
Private strConn As String
Dans une routine Button1_Click créer une table avec 3 champs dans la base de données.
Private
Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.ClickstrConn = "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source= c:nom.mdb;"
ObjetConnection =
New OleDbConnection 'Donner à la propriété ConnectionString les paramètres de connexionObjetConnection.ConnectionString = strConn
'Ouvrir la connexionObjetConnection.Open()
'Instancier un objet CommandeObjetCommand =
New OleDbCommand'Lier Commande et Connexion
ObjetCommand.Connection = ObjetConnection
'Indiquer le type de commande
ObjetCommand.CommandType = CommandType.Text
'Donner le texte de la commande SQL
ObjetCommand.CommandText = "CREATE TABLE PARENT (CLI_ID INTEGER NOT NULL PRIMARY KEY, CLI_NOM CHAR(32) NOT NULL, CLI_PRENOM VARCHAR(32))"
'Ici on crée une table PARENT avec 3 champs ; CLI_ID est un entier non nul qui sert de clé primaire, CLI_NOM CLI_PRENOM sont des chaînes de 32 caractères.
'on exécute la commande
ObjetCommand.ExecuteNonQuery()
'Fermer la connexion
ObjetConnection.Close()
End Sub
|
|
|
|
|