Запросите базу данных и вставьте, если ее нет - PullRequest
0 голосов
/ 21 июня 2010

Я хотел бы добавить способ увидеть, находится ли запись в подключенной базе данных в следующем коде.Если это так, не добавляйте запись и не открывайте диалоговое окно, в котором говорится что-то с эффектом "already been scanned", а если нет, продолжайте как обычно.

Using connection As New SqlClient.SqlConnection("Data Source=XXXXX;Initial Catalog=XXXXXX;Integrated Security=True;Pooling=False;Encrypt=False"), _
    cmd As New SqlClient.SqlCommand("INSERT INTO [XXXXX] (TrackingNumber, Date) SELECT @TrackingNumber, @Date WHERE NOT EXISTS (SELECT * FROM([XXXXX])WHERE TrackingNumber = @TrackingNumber AND Date = @Date)", connection)
        cmd.Parameters.Add("@TrackingNumber", SqlDbType.VarChar, 50).Value = TrNum
        cmd.Parameters.Add("@Date", SqlDbType.DateTime, 8).Value = TrDate
        connection.Open()
        cmd.ExecuteNonQuery()
        connection.Close()
End Using

Ответы [ 2 ]

1 голос
/ 21 июня 2010

Вы должны иметь возможность поместить свои входные данные в подзапрос, который проверяет избыточность:

INSERT INTO [XXXXXXX] (TrackingNumber, Date) 
    SELECT @TrackingNumber, @Date from DUAL 
    WHERE NOT EXISTS (
        SELECT * 
        FROM [XXXXXXX]
        WHERE TrackingNumber = @TrackingNumber AND Date = @Date)
0 голосов
/ 21 июня 2010

Мой VB.NET может быть отключен, но, надеюсь, это даст общее представление!

Dim rowsAffected AS Integer

    Using connection As New SqlClient.SqlConnection("Data Source=XXXXX;Initial Catalog=XXXXXX;Integrated Security=True;Pooling=False;Encrypt=False"), _
        cmd As New SqlClient.SqlCommand("INSERT INTO [XXXXX] (TrackingNumber, Date) SELECT @TrackingNumber, @Date WHERE NOT EXISTS (SELECT * FROM [XXXXX] WHERE TrackingNumber = @TrackingNumber)", connection)
        cmd.Parameters.Add("@TrackingNumber", SqlDbType.VarChar, 50).Value = TrNum
        cmd.Parameters.Add("@Date", SqlDbType.DateTime, 8).Value = TrDate
        connection.Open()
        rowsAffected = cmd.ExecuteNonQuery()
        connection.Close()
    End Using


If rowsAffected = 0 Then
MsgBox "Scanned Already"
Else
MsgBox "Inserted Succesfully"
End If
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...