2014-02-25 30 views
0

我一直在摸索我的方式,儘管編寫我的第一個SQL數據庫訪問應用程序,我一直在使用單一命令使用系統.data.sqlclient.sqlcommand和做類似:什麼是在VB.NET中更新或插入SQL記錄的最佳(簡單)方法

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進行更新,或者如果經理不是以前設置。在這個時候,staff和manager id都存儲在表單變量中,因此可以插入到任何SQL命令中。

我見過各種方式我可以做到這一點,如添加多行的SQLCmd.commandtext(雖然我不知道對這種格式),但我不知道這是否是一個萬無一失的解決方案或容易出現問題或者甚至會起作用。

沒有超出我目前的經驗(或給我一個更深入的解釋更復雜的東西)我怎麼能最好地完成這個?

+0

看看SQL存儲過程。 http://www.codeproject.com/Articles/38682/Overview-of-SQL-Server-Stored-Procedure –

回答

0

我不確定這是否會有所幫助,但我的VB.NET SQL代碼中有類似的東西。我所做的是使用IF THEN語句來檢查記錄是否存在。如果沒有記錄,那麼它將使用新的UID進行插入,但是如果UID已經存在,它將會更新。

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 
相關問題