==>Présentation du problème:
salut tout le monde , je développe une petite application windows pour gestion des entrée/sorties enfin mouvement d'un stock en ado.net
et j'ai un petit soucis :
d'abord je vous explique comment marche cette partie qui me cause problème:
quand je veux désabonner un fournisseur d'un article je remplace son code par F000 dans une table où le code fournisseur (F000 pour le désabonnement par exemple) et le code article représentent une clé primaire, et c'est ce qui cause problème, du moment que un article peut avoir plusieur fournisseurs, et bien si j'ai dèja désabonner un fournisseur pour un article ARTXXX ( donc j'obtient ARTXXX,F000) je ne peux plus désabonner aucun autre fournisseur pour le même article (notamment ARTXXX par exemple) puisque il y'a violation de la clé primaire: pour ceux j'ai ajouté une datagridview qui contient tout les codes d'articles correspondant aux fournisseur 'F000' et je vérifie dans la table 'article_fournit( dont la clé est code_article,code_fournisseur) si le code_article correspond à d'autre fournisseurs( à part F000) si oui je supprime le tuple correspondant à F000( et je fais ca pour tous les autres article) mais ça ne marche pasquelq'un pourrait me donner un coup de main s'il vous plait !
merci d'avance
**********************************************
===>voilà mon code
'la fonction executeselect
Public Function ExecuteSelect(ByVal strReq As String) As DataTable
Dim dt As DataTable = Nothing
Dim ds As DataSet = New DataSet
Dim sqlAdap As SqlDataAdapter
Dim sqlcom As SqlCommand
sqlcom = New SqlCommand(strReq, con)
sqlAdap = New SqlDataAdapter(sqlcom)
sqlAdap.Fill(ds, "ARTICLE_FOURNIT")
dt = ds.Tables("ARTICLE_FOURNIT")
Return dt
End Function
'le traitement dans la partie chargement du form article où il y'a mon datagridview
'If Me.RadioButton_fournisseur.Checked = "true" Then
' Dim c As Integer
' For c = 0 To Article.DataGridVieww.Rows.Count - 1
' Dim str2 As String = Article.DataGridVieww.Rows(c).Cells(0).Value
' Dim données As DataTable
' 'Dim Requete As String = "SELECT CODE_ARTICLE FROM ARTICLE_FOURNIT WHERE CODE_FOURNISSEUR NOT IN (SELECT CODE_FOURNISSEUR FROM ARTICLE_FOURNIT WHERE CODE_FOURNISSEUR='F000') AND CODE_ARTICLE='" & Me.DataGridVieww.CurrentRow.Cells(0).Value & "'"
' Dim Requete As String = "SELECT CODE_FOURNISSEUR FROM ARTICLE_FOURNIT WHERE CODE_ARTICLE= string(" & str2 & ") AND CODE_FOURNISSEUR !='F000'"
' données = ExecuteSelect(Requete)
' MsgBox("hoho")
' If données.Rows.Count <> 0 Then
' Dim cm
' cm = "DELETE FROM ARTICLE_FOURNIT WHERE CODE_ARTICLE=string(" & str2 & ") AND CODE_FOURNISSEUR='F000'"
' Dim sqlcom As SqlCommand = New SqlCommand(cm, con)
' sqlcom.ExecuteNonQuery()
' MsgBox("test test !!")
' End If
' Next c
Partager