2014-12-13 2 views
0

Привет, ребята, я пытаюсь отправить сообщение, если тот же идентификатор существует в базе данных. но оператор If не работает с OleDb.OleDbDataAdapte как я могу решить эту проблему и сделать работу If if?Как избежать добавления дважды в vb

If Da1 = New OleDb.OleDbDataAdapter("select * from Payments where BookingID = " & 
     CInt(txtBookingID.Text) & "", Con1) Then 

    MessageBox.Show("This Bill for this Booking is existed in the system. 
    You Can not add it again.", "Authentication Failure", MessageBoxButtons.OK, 
    MessageBoxIcon.Exclamation) 

else 

    new_rec("BookingID") = txtBookingID.Text 
    new_rec("DateAndTime") = lblDateAndTime.Text 

    Dt1.Rows.Add(new_rec) 
    Da1.Update(Dt1) 

    MessageBox.Show("Booking ID " + " *" + txtBookingID.Text + "* " + 
    "has been Saved to The System.  Press * OK * to Go Back") 

end if 
+0

Этот код использует метод, который уязвим для SQL-инъекций. Если тот же метод используется в другом месте приложения, он практически попросит взломать. –

+0

Также: ** вы никогда не выполняете запрос **. Просто создание адаптера данных не запускает команду sql. Вы должны ** заполнить() ** набор данных или datatable. –

+0

Возможный дубликат [Как избежать добавления или вставки информации дважды для доступа к базе данных в Visual Basic?] (Http://stackoverflow.com/questions/27447985/how-to-avoid-adding-or-inserting-information-twice- to-access-database-in-visual) – Plutonix

ответ

0

попробовать, как этот

Da1 = New OleDb.OleDbDataAdapter("select * from Payments", Con1) 

da1.Fill(dt1) 

If dt1 is nothing orelse dt1.select("boolingid=" & txtBookingID.Text).count > 0 Then 

    MessageBox.Show("This Bill for this Booking is existed in the system. You 
    Can not add it again.", "Authentication Failure", MessageBoxButtons.OK, 
    MessageBoxIcon.Exclamation) 

else 

    new_rec("BookingID") = txtBookingID.Text 
    new_rec("DateAndTime") = lblDateAndTime.Text 

    Dt1.Rows.Add(new_rec) 
    Da1.Update(Dt1) 

    MessageBox.Show("Booking ID " + " *" + txtBookingID.Text + "* " + 
    "has been Saved to The System. Press * OK * to Go Back") 
end if 
+0

СПАСИБО ЗА ВАШЕ ОТВЕТ. НО ЭТО НЕ ДОПУСКАЕТ ДОБАВИТЬ. IT всегда делает, если и доза не переходит в инструкцию else –

+0

@EssaAlatwan not Clear Show с примером. если у вас есть этот идентификатор в таблице, тогда покажите предупреждение в противном случае. Правильно а? – Sathish

+0

да, что я хочу. Если идентификатор существует в таблице, показать предупреждение, в противном случае следует сохранить информацию в новой строке. –

Смежные вопросы