我正在尝试使用VB.NET进行一个非常简单的INSERT.出于某种原因,我在每个插件上都遇到了SqlException.插入数据,但仍然得到以下内容:
违反PRIMARY KEY约束'PK_User'.无法在对象'dbo.Employee'中插入重复键.该语句已终止
当我签入SQL Management Studio时,会成功插入数据.
这是问题发生的代码
Try conn.Open() Dim insertSQL As String = "insert into Employee(uName, firstName, lastName, On_Switch, On_Phone) " + "values('" & uName & "', '" & firstName & "', '" _ & lastName & "', '" & onSwitch & "', '" & onPhone & "')" Dim AddCom As SqlCommand = New SqlCommand(insertSQL, conn) If (AddCom.ExecuteNonQuery() = 1) Then lblError.Text = "User Added." ' string urlBack = "../ViewAsset.aspx?DeptID=" + DeptID; ' Response.Redirect(urlBack); End If conn.Close() Catch ex As SqlException Dim ExMsg As String = ex.Message.ToString() lblError.Text = ExMsg
我回去并在C#中测试了相同的代码,并且没有抛出Exception.它似乎是我在VB中做的小事,但我迷失了它是什么.
作为旁注,我强烈建议更改为参数化查询,以防止SQL注入的风险,即您当前的代码不受保护.
对于错误问题,我会检查您的代码是否在VB版本中没有被调用两次.