2014-02-25 2 views
0

SQL 데이터베이스 액세스로 첫 번째 응용 프로그램을 작성했지만 시스템을 사용하여 단일 명령을 사용하여 확인하고 있습니다. .data.sqlclient.sqlcommand과 같은 일을 :VB.NET에서 SQL 레코드를 UPDATE 또는 INSERT하는 가장 좋은 방법은 무엇입니까

SQLCmd.CommandText = ("DELETE from ContactRelationships WHERE ID = 'someid'") 
SQLCmd.ExecuteNonQuery() 

또는 양식에 변경 사항을 저장 한 후 저장하거나 취소 :

Dim x As New SqlCommand("DELETE from SharedDataLocations where Location = @Loc and UserID= @UID ;--", cnn) 
     x.Parameters.Add("@Loc", SqlDbType.NVarChar, 300).Value = strRemDLoc 
     x.Parameters.Add("@UID", SqlDbType.Int).Value = UserID 
     PendingSQLChanges.Add(x) 
'followed later by 
For x = 0 To PendingSQLChanges.Count - 1 
      PendingSQLChanges(x).ExecuteNonQuery() 
     Next 
     PendingSQLChanges.Clear() 

를 내가 태클하지 않은 것보다 더 복잡한 아무것도 아직 그러나 나는 기꺼이 배우려고한다. 지금해야 할 일은 현재 STAFF 레코드의 ID를 가져 와서 STAFFMANAGERS 관계 테이블에 이미 설정되어 있는지 확인한 다음 MANAGERS 테이블의 선택된 ID로 업데이트하거나 관리자가 아닌 경우 레코드를 작성하는 것입니다 이전에 설정된. 직원 및 관리자 ID는이 시점에서 양식 변수에 저장되므로 모든 SQL 명령에 삽입 할 수 있습니다.

과 같이 여러 가지 방법으로 보았습니다 (형식은 잘 모르겠지만) 여러 줄을 추가하는 등의 작업을 수행 할 수 있습니다.하지만이 방법이 간단한 해결책인지 전혀 모릅니다. 문제가 발생하기 쉬운 지 또는 작동 여부.

현재의 경험에서 너무 벗어나지 않고 (또는 더 복잡한 것에 대한 깊이있는 설명을하지 않고) 어떻게 이걸 가장 잘 수행 할 수 있습니까?

+0

SQL 저장 프로 시저를 살펴보십시오. http://www.codeproject.com/Articles/38682/Overview-of-SQL-Server-Stored-Procedure –

답변

0

이것이 도움이 될지 모르지만 VB.NET SQL 코드에서 이와 비슷한 점이 있습니다. 내가 한 일은 IF THEN 문을 사용하여 레코드가 존재하는지 확인하는 것입니다. 레코드가 없으면 새로운 UID로 INSERT하지만, UID가 이미 존재하면 UPDATE됩니다.

Public Class YourForm 
    Private UniqueID as Integer 

Private Sub 
    If AddRecord Then 
     SQLCmd.CommandText = "INSERT into YourTableName (YourColumnName1,YourColumnName2) values (" & _ 
     "'" & YourTextBox.Text & "')") 
     Else 
      RunSql ("Update YourTableName set YourColumnName='" & YourTextBox.Text & "')" & _ 
     " where YourUID=" & UniqueID) 
End Sub 
End Class 
관련 문제