begin process at 2012 02 15 19:31:17
  Trouver un code source :
 
dans
 
Accueil > Forum > 

VB.NET et VB 2005

 > 

Base de données

 > 

SQL

 > 

Problème de violation d'acces lors d'une suppression


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Problème de violation d'acces lors d'une suppression

jeudi 4 janvier 2007 à 16:12:07 | Problème de violation d'acces lors d'une suppression

AionSinner

Bonjour à tous,

Voilà maintenant plusieurs longues heures que me casse la tête sur un problème et je n'en trouve pas la solution, alors s'il vous plait ... Qu'on me vienne en aide !!!

Je construis actuellement un programme pour application portative sous .NET, et alors que j'en suis à la phase terminale de réalisation je bloque sur un petit problème :

J'ai une table (nommée "LISTE_COMPOSANT") dans une base de donnée (nommée "pda.sdf")
J'interagit déjà avec cette table sans aucun problème (utilisation de INSERT) mais lorsque je cherche à supprimer des éléments, voir dans le cas suivant à complètement vider la table, je tombe sur une erreur de type "Violation d'accès"

Voici la compo de ma table :

LISTE_COMPOSANT
Nom_composant                     NvarChar de taille 100
Id_composant                         Int de taille 4   Clef primaire et Unique
SE_pere                                  Nvarchar de taille 100   Clef Primaire et Unique

 

Voici la sub permettant l'utilisation du dataset et dataadapter (respectivement "dasXLComp" et "dapXLComp") :


Sub
CompXLBDD()

'Specification d'un connexion pour un data adapter

Dim PATH AsString = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly.GetName.CodeBase)

Dim SQLFile AsString = "\BasePDA.sdf"

Dim cnn1 As SqlCeConnection = New SqlCeConnection("Data Source =" & PATH & SQLFile)

'Specification du dataadapter

dapXLComp = New SqlCeDataAdapter("SELECT Id_composant, Nom_composant, SE_pere " & "FROM LISTE_COMPOSANT", cnn1)

'Définition de la commande Insert (FONCTION TRES BIEN)

dapXLComp.InsertCommand = New SqlCeCommand("INSERT INTO LISTE_COMPOSANT (Id_composant, Nom_composant, SE_pere)" & "VALUES (@Id_composant, @Nom_composant, @SE_pere)", cnn1)

'Spécification des paramétres de la commande

dapXLComp.InsertCommand.Parameters.Add("@Id_composant", Data.SqlDbType.NVarChar, 40, "Id_composant")

dapXLComp.InsertCommand.Parameters.Add("@Nom_composant", Data.SqlDbType.NVarChar, 40, "Nom_composant")

dapXLComp.InsertCommand.Parameters.Add("@SE_pere", Data.SqlDbType.NVarChar, 40, "SE_pere")

'Spécification de la chaîne de commande Delete

!!! LE PROBLEME SE SITUE ICI !!!

dapXLComp.DeleteCommand = New SqlCeCommand("DELETE " & "FROM LISTE_COMPOSANT " & "WHERE Id_composant = @Id_composant", cnn1)

'Spécification de la valeur de critère de correspondance (SUREMENT UN PROBLEME ICI MAIS JE NE LE VOIT PAS)

Dim prm3 As SqlCeParameter = dapXLComp.DeleteCommand.Parameters.Add("@Id_composant", Data.SqlDbType.Int)

prm3.SourceColumn = "Id_composant"

prm3.SourceVersion = Data.DataRowVersion.Original

'Ouverture de la connexion

cnn1.Open()

'Remplir l'ensemble de données avec le data adapter

dapXLComp.Fill(dasXLComp, "LISTE_COMPOSANT")

'Fermeture de la connexion

cnn1.Close()

End Sub


Et voici enfin l'utilisation que j'en fait :

Sub permettant de supprimer tout le contenu de la table. J'utilise déjà ce type de sub avec d'autre table et ça marche très bien . je suppose donc que ça provient de la façon dont j'ai déclaré la command DELETE et de ses parametres.

''Efface le contenu des bases liste

Sub DeleteList()

CompXLBDD()

''Création d'une datatable permettant de manier le contenu
Dim DtCompDeleteMe As Data.DataTable = dasXLComp.Tables(
"LISTE_COMPOSANT" )

Dim CurrentRowComp As Integer = 0

''Si des données existe alors on procède à leur supression
If DtCompDeleteMe.Rows.Count <> 0 Then

For CurrentRowComp = 0 To DtCompDeleteMe.Rows.Count - 1

dasXLComp.Tables( "LISTE_COMPOSANT" ).Rows(CurrentRowComp).Delete()

Next

''Et on update : c'est là que ca merde en me donnant une erreur de type violation d'acces
dapXLComp.Update(dasXLComp,
"LISTE_COMPOSANT" )

End If

DtCompDeleteMe.Dispose()

UnloadXLComp()

End Sub

 

 

Voilà si qqun peut m'aider ça serait génial !!!

Perso j'ai plus aucune idée . A moins qu'il y ait une méthode de suppression particulière à adopter lorsque l'on à deux clefs primaire dans une table ?

 

Merci d'avance et désolé si ça semble bordélique exposé comme ça.

vendredi 27 avril 2007 à 20:23:45 | Re : Problème de violation d'acces lors d'une suppression

asecher

Le .Net, ça me donne des boutons, mais :
faut voir le problème de synchro.... Tu delete et update dans la micoseconde de notre processeur et ta base essaye de suivre. En skioul, faut travailler en transactionnel car, sinon, tu ne sais pas où en est ton lot d'instructon.
Soit, coté code, tu gère les propriétés de ta connexion et tu gêre les erreurs et autres TimeOut,
Soit, tu écris une belle prcédure, coté SQL,qui fait le travail et renvoie un status ...

Alain 31


Cette discussion est classée dans : composant, liste, data, id, dapxlcomp


Répondre à ce message

Sujets en rapport avec ce message

Data Report [ par Omar ] J'utilise le composant intégré à VB 6.0, Data Report, pour la génération de certains états. Mais, ce composant ne semble pas encore être totalement au .::[ Sélectionner automatiquement dans un listbox à choix multiple ]::. [ par bibilafrayeur ] Bonjour tout le monde.J'ai un listbox don la propriété style est à "checkbox" !!Ce listbox est alimenté par une requete de la manière suivante :'rempl Data Report... Impression d'une liste... [ par C17 ] Salut à tous, J'ai une liste de données à imprimer en VB avec un datareport, ces données sont triées par date... Tout ceci est déjà fait. Je veux simp probleme de liste [ par patl76 ] Salut tout le monde !!J' ai un petit probleme qui doit pas etre tres compliqué a resoudre pour certains...J' ai plusieurs DBlist dans lesquelles je ve Lorsque je clique sur l'un des choix de la liste déroulante, rien ne se passe... [ par mcber35 ] Bonjour, Je suis en train de créer une application dans Access 2002 et j'ai des problèmes avec l'une de mes listes déroulantes. En fait, la liste en q liste modifiable [ par sgrant ] Bonjourje suis avec vb.netje voudrai trouver le composant suivant :une menu déroulant avec une saisie semie automatique, en clair sur access ce compos liste déoulante [ par one_piece ] salut a tous!!Mon problème:Sur un formulaire j'ai une liste déroulante avec trois valeurs:   - un id   - un nom   - un prénoma l'écran je n'affiche qu Choix d'une table dans un data [ par Omega15 ] Bonjour,jaimerai savoir, comment peut-on selectionner par une ligne de commande, la table d'une base de donné utilisé dans un data.Je m'explique, je d datareport [ par artelle ] Bonjour je souhaiterais avoir de l'aide sur l'utilisation d'un data report En fait j'ai ecris un logiciel et j'utilise le reportdata pour afficher les inserting a new row [ par sidnet ] chers développer j'ai envie dinserer en nouveau record dans une table of my project developpé en vb.net et sql serveur 2000 mon code est le suivant: P


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 2,153 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales