2016-04-01 23 views
1

Bir filtrem var, böylece bağlama kaynağını müşteri kimliği tarafından filtreler. Ama müşteri kimliği yoksa ne olur? ID = 3 girdiğimde ve o yokken, benim bütün bağımımı bozduğumu söylerim, her şeyi geçersiz kılar ve bağlamayı yeniden açmak istediğimde, maddenin yerini bulamadığını söyler. Bu yüzden, hataların ayrıntılarına girmemek için uğraşmak istiyorum, eğer null'a geri dönüyorsa, o zaman kullanıcıyı bulunmayan bir hata ile birlikte sunup tekrar girin, eğer doğru/mevcut ise filtre işini yapıyorsa bunu yapmak istiyorum.Öğe vb. Yoksa cilt kaynağı kaynağında nasıl hata iletisi ayarlayabilirim

Kodum: ihtiyacım

dim filterstring as string 
    filterstring = CStr(bsorder.Filter = "id = " & custid & "") 
       If filterstring.Count() = 0 Then 
        MessageBox.Show("Error! try again!", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error) 
       Else 

         bsorder.Filter = "ID = " & custid & "" 

       End If 
+0

Daha fazla açıklamak ister misiniz? - Örnek vermek ister misiniz? Aslında buradaki tüm seçenekle ilgili kısa bir gönderi okuyordum, ancak bu prosedürü ilk kez bir çaprazlama geliyordu: z Kodumu tamir ediyordum ve bu küçüklükten gelene kadar mükemmellik yapabilmek için hepsini test ediyordum. Eğer mevcut değilse, bir hata vermez hata: L –

+0

Opsiyon katı gibi bir şey değil mi? Bunu benim koduma koydum, kod bitmeden önce Seçenek katı kapalı mı? –

+0

Seçeneği yapmak iyi bir şey midir? Ve bununla birlikte, benim diğer kodumu rahatsız edecek: o –

cevap

1

satır filtre uygulamadan önce var olmadığını kontrol etmek yapmaya yüzden başarıyla kimliği var mıdır, yok doğrusu bilmek bir deneme/yakalama yöntemi kullanılmıştır. Çalışılan kod aşağıdadır:

Try 
       Using myConnection As OleDbConnection = New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=.\yous.accdb") 
        myConnection.Open() 
        Dim str As String 
        str = "SELECT * FROM table WHERE [email protected] " 
        Using cmd As OleDbCommand = New OleDbCommand(str, myConnection) 
         cmd.Parameters.AddWithValue("@ID", custid) 
         Using dr As OleDbDataReader = cmd.ExecuteReader 
          If dr.HasRows Then 
           dr.Read() 

         End Using 
        End Using 
       End Using 
      Catch ex As Exception 
       MsgBox(ex.ToString) 
      End Try