2013-10-02 5 views
0
Using con = New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source = Mokmeuh.accdb") 
     con.Open() 
     dAdapter.UpdateCommand = New OleDbCommand("UPDATE Articles SET Nom = @p1, Prix = @p2, Quantité = @p3 WHERE ((Nom = @p1) AND ((@p2 = 1 AND Prix IS NULL) OR (Prix = @p2)) AND ((@p2 = 1 AND Quantité IS NULL) OR (Quantité = @p3)))", con) 
     dAdapter.UpdateCommand.Parameters.Add("@p1", OleDbType.VarChar, 4, "Nom") 
     dAdapter.UpdateCommand.Parameters.Add("@p2", OleDbType.Single, 4, "Prix") 
     dAdapter.UpdateCommand.Parameters.Add("@p3", OleDbType.Integer, 4, "Quantité") 

     dAdapter.Update(dSet.Tables("Articles_table")) 
    End Using 

이것은 매개 변수가있는 내 커맨드 일 것이지만 오류가 발생하여 오류가 발생하지만 문제를 해결하는 방법을 모르지만 오류가 발생합니다. 업데이트 내가이 잘못된Oledeb 커맨드 빌더가 틀렸어

편집합니까 그것은 그래서

하나에 영향을한다 0 영향 :

enter image description here

+0

업데이트 진술을 제거하여 단계에서 오류를 찾으려고합니다. 또한 Access에 가서 SQL을 작성하는 것이 좋습니다. 쿼리 편집기를 사용하면이 명령문을 작성할 수 있으며 결과가 없으면 오류가없는 코드는 없습니다. 이와 같은 문제를 해결하려면 단계별로 시도해야합니다. – Derek

+0

* 일부 중재자와 같은 텍스트로 질문 내용을 업데이트하지 마십시오. *이 업데이트를 롤백했습니다. 여전히 원한다면 사회자의주의를 끌기 위해 ** 깃발 **을 쓸 수는 있지만이 질문에는 이미 대답이 있기 때문에 요청을 수락하지 않는다고 생각합니다. – Harry

답변

1

불행하게도 데이터베이스 유형을, 우리는 케이 해달라고 이제 귀하의 데이터는 귀하를 도울만큼 충분히 좋습니다. 그러나, 여기 당신이 당신을 도울 수있는 방법입니다. UPDATE를 SELECT로 바꾸고 결과를 확인하십시오. 귀하의 데이터가 없다면, 당신의 WHERE SQL은 이상하게 보일지 모르지만, 그것은 완벽하게 논리적 일 때 이상하게 보일 수 있습니다.

SELECT * FROM Articles WHERE ((Nom = @p1) AND ((@p2 = 1 AND Prix IS NULL) OR (Prix = @p2)) AND ((@p2 = 1 AND Quantité IS NULL) OR (Quantité = @p3))) 
+0

데이터 부족으로 인해 유감입니다. 더 필요한 것이 무엇입니까?, 테이블? – Mokmeuh

+0

위에서 언급 한 SELECT 아이디어를 시도 했습니까? 우리는 당신이 이것을한다면 데이터가 필요 없다. – Steve

+0

잠깐만 내가 수업 중이 었어. 내가 VB에서 또는 MS 액세스로 실행하도록 하시겠습니까? – Mokmeuh

관련 문제