Bonjour a tous,

J'ai un petit problème, j'ai déjà programmé en vb.net cependant c'était il y a longtemps et je me souviens plus de tout.

Je voudrai juste exécuter une requête SQL pour écrire une ligne dans une bases de données SQL qui comporte une table avec 3 colonne: ID ,nom prenom.

J'utilise Visual studio 2012. J'ai une textbox nom et une textbox prenom et un bouton pour exécuter.

Voici mon programme :

Quand je clique sur le bouton
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
 
Public Class Form1
 
    Private Sub btn_save_Click(sender As Object, e As EventArgs) Handles btn_save.Click
        Dim i As New Insert()
        i.setName(Me.txtnom.Text)
        i.setSurName(Me.txtprenom.Text)
 
        Dim dbInsert As New DatabaseManagement()
 
        dbInsert.insertData(i.getName(), i.getSurName(), i.getAge())
    End Sub
End Class
Dans ma classe DatabaseManagement

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
Imports System.Collections.Generic
Imports System.Linq
Imports System.Text
Imports System.Data.SqlClient
Imports System.Data.Sql
Imports System.Data.SqlTypes
Imports System.Windows.Forms
Imports System.Data
 
 
Public Class DatabaseManagement
    Private Function getConnectionString() As String
        Dim builder As New SqlConnectionStringBuilder()
               builder.DataSource = ".\SQLEXPRESS"
        builder.AttachDBFilename = "C:\Users\Matthieu\Documents\Visual Studio 2012\Projects\WindowsApplication1\WindowsApplication1\bdd.sdf"""
        builder.IntegratedSecurity = True
        builder.ConnectTimeout = 30
        builder.UserInstance = True
        Return builder.ConnectionString
    End Function
 
    Public Sub insertData(name As String, surName As String, age As String)
        Dim connection As New SqlConnection(getConnectionString())
        Dim cmd As New SqlCommand("INSERT INTO table (Nom,Prenom) VALUES (@Nom,@Prenom)", connection)
 
        Try
            cmd.Parameters.AddWithValue("@Nom", name.ToUpper())
            cmd.Parameters.AddWithValue("@Prenom", surName.ToUpper())
            connection.Open()
            cmd.ExecuteNonQuery()
            connection.Close()
            connection.Dispose()
 
        Catch ex As Exception
            MessageBox.Show(ex.Message.ToString())
            connection.Close()
            connection.Dispose()
        Finally
            connection.Close()
            connection.Dispose()
        End Try
    End Sub
End Class
La classe insert me sert juste a récupérer la valeur des deux textbox.

Mon programme me renvoi une erreur a la connexion de la base de données qui est le suivant :

An attempt to attach an auto-named database for file C:\Users\Matthieu\Documents\Visual Studio 2012\Projects\WindowsApplication1\WindowsApplication1\bdd.sdf" failed. A database with the same name exists, or specified file cannot be opened, or it is located on UNC share.

Je pense que je me connecte mal a la base de données.

En espérant une réponse de votre part.

Cordialement,

Matthieu