BDD local [Résolu]

scoob79
Messages postés
27
Date d'inscription
mercredi 20 janvier 2010
Dernière intervention
5 septembre 2018
- 20 août 2018 à 14:15 - Dernière réponse : scoob79
Messages postés
27
Date d'inscription
mercredi 20 janvier 2010
Dernière intervention
5 septembre 2018
- 22 août 2018 à 10:27
Bonjour,

je rencontre des petits soucis avec la gestion de base de données, voici mon code

Imports System.Data.Linq
Imports System.Data.Linq.Mapping
Public Class Form4
    Dim MonTableAdapter As New DataSet1TableAdapters.Ping1TableAdapter
    Private Sub Form4_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Dim x As String, y As String
        x = "r"
        y = "y"
        MonTableAdapter.Insert(x, y)

    End Sub
End Class


Ma base "Ping" est bien créée (ID string et Action String) ainsi que mon tableadaptater la requête générée automatiquement est la suivante :

INSERT INTO Ping
                         (ID, Action)
VALUES        (@ID,@Action)


le programme se lance mais génère un exception (lors du pas à pas) avec l'erreur :

Une exception de première chance de type 'System.Data.SqlServerCe.SqlCeException' s'est produite dans System.Data.SqlServerCe.dll


Quelqu'un aurais une idée ?

Merci d'avance.
Afficher la suite 

Votre réponse

4 réponses

Meilleure réponse
jordane45
Messages postés
23235
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
15 novembre 2018
- 20 août 2018 à 21:26
1
Merci
Bonjour,

Cela fait longtemps que je n'ai pas fais de sql server ni de dotnet... mais... tu cherches à insérer dans le champ ID une "string".
Es-tu sûr que ce champ attend ce type de variable ? Ne serait pas plutôt un numérique auto-incrémenté ? (et dans ce cas.. le mettre dans la requête n'a pas d'interet )

Merci jordane45 1

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 86 internautes ce mois-ci

Commenter la réponse de jordane45
scoob79
Messages postés
27
Date d'inscription
mercredi 20 janvier 2010
Dernière intervention
5 septembre 2018
- 21 août 2018 à 10:29
0
Merci
Salut,

pour être plus simple je suis partie d'un nouveau projet pour tester :

Base :

MaBase > MaTable
|----- ID nvarchar 100 NON NON NON
|----- Action nvarchar 100 OUI NON NON

DataBase :

Insert :

INSERT INTO MaTable
                         (ID, Action)
VALUES        (@p1,@p2)


Form1 :

Public Class Form1
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        MaTableTableAdapter.Insert("test", "test")
    End Sub
End Class


Lors de l’exécution pas à pas le code plante dans le fichier Database1Dataset1.Designer.vb sur la section :

        <Global.System.Diagnostics.DebuggerNonUserCodeAttribute(),  _
         Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")>  _
        Protected Friend ReadOnly Property Adapter() As Global.System.Data.SqlServerCe.SqlCeDataAdapter
            Get
                If (Me._adapter Is Nothing) Then
                    Me.InitAdapter
                End If
                Return Me._adapter
            End Get
        End Property


Erreur :

Une exception de première chance de type 'System.Data.SqlServerCe.SqlCeException' s'est produite dans System.Data.SqlServerCe.dll


Commenter la réponse de scoob79
scoob79
Messages postés
27
Date d'inscription
mercredi 20 janvier 2010
Dernière intervention
5 septembre 2018
- 21 août 2018 à 16:59
0
Merci
Bon j'ai essayé avec un autre code mais c'est pas mieux.

    Private Sub Form4_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        Try
            Dim SQLConn = New SqlConnection(), cmd As String
            SQLConn.ConnectionString = "Data Source=|DataDirectory|\BDD.sdf;Initial Catalog=Ping"

            SQLConn.Open()

            cmd = "INSERT INTO MaTable (ID, Action) VALUES ('TEST', 'TEST')"

            Dim Command = New SqlCommand(cmd, SQLConn)
            Command.ExecuteNonQuery()
            SQLConn.Close()
        Catch ex As Exception
            MsgBox(ex.Message)
            End

        End Try
    End Sub

Enfin peut-être une avancée le message d'erreur est maintenant :

Une erreur liée au réseau ou spécifique à l'instance s'est produite lors de l'établissement d'une connexion à SQL Server. Le serveur est introuvable ou n'est pas accessible. Vérifiez que le nom de l'instance est correct et que SQL Server est configuré pour autoriser les connexions distantes. (provider: SQL Network Interfaces, error: 26 - Erreur lors de la localisation du serveur/de l'instance spécifiés)

Mais toujours au même point...
Commenter la réponse de scoob79
scoob79
Messages postés
27
Date d'inscription
mercredi 20 janvier 2010
Dernière intervention
5 septembre 2018
- 22 août 2018 à 10:27
0
Merci
Salut,

J'ai fini par trouver une solution qui fonctionne correctement.

Imports System.Data
Imports System.Data.SqlClient
Imports System.Data.SqlServerCe

Public Class Form1
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim sqlcon As New SqlCeConnection("Data Source=D:\Users\u165147\documents\visual studio 2010\Projects\WindowsApplication5\WindowsApplication5\Database1.sdf")
        Dim sqlcmd As New SqlCeCommand, sqltext As String
        Try
            sqlcon.Open()
            sqltext = "INSERT INTO [table](ID, Nom) VALUES ('coucou','coucou')"
            sqlcmd.CommandText = sqltext
            sqlcmd.Connection = sqlcon
            sqlcmd.ExecuteNonQuery()
            sqlcon.Close()
        Catch ex As Exception
            MsgBox(ex.Message)
        End Try
    End Sub
End Class


Et encore une fois sur youtube => https://www.youtube.com/watch?v=pnI0tgIR9fg&t=8s

Le Data Source peut être modifier comme suit si la base est dans le même répertoire que l'application.

"Data Source=|DataDirectory|\Database1.sdf"


@+
Commenter la réponse de scoob79

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.