2016-09-19 66 views
0

我正在使用SQL Server 2012和Visual Studio 2015設置庫存數據庫,並且正在創建添加新客戶表單。在sql/visual studio中用表單輸入數據時自動遞增CompanyID字段

我已經在CompanyID上使用自動增量設置表格,該自動增量從1000開始,自動遞增1.我可以手動輸入表格數據,而且我的自動增量很好,非常基本。

我已經開始編寫一個表單來將數據插入到Customers表中,但我一直在堅持如何正確地實現這個功能。我需要一種使用表單輸入數據的方法,同時在用戶單擊保存時使CompanyID字段自動增量。

以下是我的代碼,非常感謝任何幫助。

Dim con As New SqlConnection 

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load 
    con.ConnectionString = "Data Source=SNZ-HYPERV02;Initial Catalog=Signals;Integrated Security=True" 

End Sub 
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click 

    con.Open() 

    Dim cmd As New SqlCommand(("INSERT INTO Customers VALUES('" & 
           CName.Text & "', '" & 
           A1.Text & "', '" & 
           A2.Text & "', '" & 
           A3.Text & "', '" & 
           Suburb.Text & "', '" & 
           City.Text & "', '" & 
           PCode.Text & "', '" & 
           Area.Text & "', '" & 
           Country.Text & "', '" & 
           CellPh.Text & "', '" & 
           Fax.Text & "', '" & 
           Email.Text & "', '" & 
           Website.Text & "', '" & 
           SContact.Text & "', '" & 
           SPhone.Text & "', '" & 
           SEmail.Text & "', '" & 
           AContact.Text & "', '" & 
           APhone.Text & "', '" & 
           AEmail.Text & "', '" & 
           SPerson.Text & "')"), con) 

    cmd.ExecuteNonQuery() 

    con.Close() 

    MsgBox("Record Successfully Entered", MsgBoxStyle.Information, "SUCCESS") 

    CName.Clear() 
    A1.Clear() 
    A2.Clear() 
    A3.Clear() 
    Suburb.Clear() 
    City.Clear() 
    PCode.Clear() 
    Area.Clear() 
    Country.Clear() 
    CellPh.Clear() 
    Fax.Clear() 
    Email.Clear() 
    Website.Clear() 
    SContact.Clear() 
    SPhone.Clear() 
    SEmail.Clear() 
    AContact.Clear() 
    APhone.Clear() 
    AEmail.Clear() 
    SPerson.Clear() 

    CName.Focus() 

End Sub 
+0

[SQL注入警報(http://msdn.microsoft.com/en-us/library/ms161953%28v=sql插入值.105%29.aspx) - 您應該**不**將您的SQL語句連接在一起 - 使用**參數化查詢**來代替以避免SQL注入 –

回答

0

你需要改變你的SQL Command,特定領域(除Company ID),你需要插入。如果沒有具體的字段名,SQL會認爲你想爲所有領域

Dim cmd As New SqlCommand(("INSERT INTO Customers (fieldnameA, fieldnameB ...) VALUES('" & 
          CName.Text & "', '" & 
          A1.Text & "', '" & 
          A2.Text & "', '" & 
          A3.Text & "', '" & 
          Suburb.Text & "', '" & 
          City.Text & "', '" & 
          PCode.Text & "', '" & 
          Area.Text & "', '" & 
          Country.Text & "', '" & 
          CellPh.Text & "', '" & 
          Fax.Text & "', '" & 
          Email.Text & "', '" & 
          Website.Text & "', '" & 
          SContact.Text & "', '" & 
          SPhone.Text & "', '" & 
          SEmail.Text & "', '" & 
          AContact.Text & "', '" & 
          APhone.Text & "', '" & 
          AEmail.Text & "', '" & 
          SPerson.Text & "')"), con) 
+0

嗨Alex,非常感謝您抽出時間看一下,我已經採納了你的建議,並更改了SQL命令,並且表單工作正常。我只希望我能像你一樣有所幫助回到某個時候:) –

+0

很高興我可以幫助你,請將它標記爲答案,如果這可以解決你的問題,謝謝 – Prisoner

+0

[SQL注入警報](http://msdn.microsoft .com/en-us/library/ms161953%28v = sql.105%29.aspx) - 你應該不**將你的SQL語句連接在一起 - 使用**參數化查詢**來避免SQL注入 –