2016-09-19 67 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注入 –