2013-11-13 6 views
0

Мне было предложено обновить устаревшее приложение VB.net, и, хотя у меня есть часть его, мне трудно выполнить проверку проверки, чтобы убедиться, что строка не перед добавлением его в таблицу базы данных. Ниже приведен код, который у меня есть. Я думал, что у меня это работает, но это просто переходит к моему заявлению. Я хочу передать два значения из выпадающего списка в параметры, а затем проверить, существует ли строка с этими параметрами в указанном столбце.VB.NET Database Check for Duplicate перед отправкой

Private Sub joinValidation(ByVal source As Object, ByVal e As EventArgs) 
    Using connection As New SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings("System_Configuration").ConnectionString) 
     Using cmd As SqlClient.SqlCommand = connection.CreateCommand() 

      cmd.CommandText = "SELECT 1 FROM Join_Connection WHERE Alias1ID = @Alias1Check AND Alias2ID = @Alias2Check" 
      cmd.Parameters.AddWithValue("@Alias1Check", Datasource1.SelectedValue) 
      cmd.Parameters.AddWithValue("@Alias2Check", Datasource2.SelectedValue) 
      cmd.Connection.Open() 
      Dim exists As String = cmd.ExecuteScalar().ToString() 
      If exists = "1" Then 
       Response.Write("<script language='javascript'>alert('This Alias already exists in the Alias table.');</script>") 
       cmd.Connection.Close() 
      ElseIf exists = "0" Then 
       addJoin() 
       joinResetPage() 
      End If 
     End Using 
    End Using 
End Sub 

Я не очень хорошо знаком с VB.NET, поэтому любая помощь или совет будут оценены.

+1

и что это значение 'exists', когда вы установили точку останова, прежде чем ваш, если заявление? –

+0

Когда я запускаю страницу, запускается IISExpress, я могу добавить строки в базу данных со страницы, но точка останова не останавливается, когда оператор IF падает или раньше. – Alexander

ответ

1

Try следующий код может быть поможет вам:

Private Sub joinValidation(ByVal source As Object, ByVal e As EventArgs) 
     Using connection As New SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings("System_Configuration").ConnectionString) 
      Using cmd As SqlClient.SqlCommand = connection.CreateCommand() 

       cmd.CommandText = "SELECT count(1) FROM Join_Connection WHERE Alias1ID = @Alias1Check AND Alias2ID = @Alias2Check" 
       cmd.Parameters.AddWithValue("@Alias1Check", Datasource1.SelectedValue) 
       cmd.Parameters.AddWithValue("@Alias2Check", Datasource2.SelectedValue) 
       cmd.Connection.Open() 
       Dim exists As Integer = 0 
       Integer.TryParse(Convert.ToString(cmd.ExecuteScalar()), exists) 
       If exists > 0 Then 
        Response.Write("<script language='javascript'>alert('This Alias already exists in the Alias table.');</script>") 
        cmd.Connection.Close() 
       Else 
        addJoin() 
        joinResetPage() 
       End If 
      End Using 
     End Using 
    End Sub 
+0

Я видел скалярный образец, который я использовал выше в других образцах. Мне нравится подсчет и целостный способ сделать это. Благодарю. – Alexander

+0

Возможно, что между временными рамками проверки и вставки вставлено одно и то же значение. – Styxxy