2015-11-02 1 views
1

J'essaie d'implémenter un moteur de recherche dans ASP.NET et VB.net. La recherche provient d'une base de données .sdf. Je continue à obtenir un:Implémenter un moteur de recherche dans ASP.NET et VB.net à partir de la base de données .sdf

System.NullReferenceException: référence d'objet non définie à une instance d'un objet

L'erreur se produit sur la ligne

myDA.SelectCommand = cm 

Mais je ne peux point la source de l'erreur depuis mon code semble propre. Je vous remercie de l'aide

Private Sub searchButton_click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles searchButton.Click 
    registration.Visible = True 
    con.Open() 
    cm.Connection = con 
    cm.CommandText = "SELECT * FROM records WHERE phone = " & phoneTextBox.Text 
    cm.ExecuteNonQuery() 
    myDA.SelectCommand = cm 
    myDA.Fill(myDataSet, "records") 

    If myDataSet.Tables("records").Rows.Count = 0 Then 
     TextBox1.Text = "" 
     TextBox2.Text = "" 
     TextBox3.Text = "" 
     TextBox4.Text = "" 
     TextBox5.Text = "" 
     TextBox6.Text = "" 
     Response.Write("Record not Found") 
    Else 
     TextBox1.Text = myDataSet.Tables("Records").Rows(0).Item("phone") 
     TextBox2.Text = myDataSet.Tables("Records").Rows(0).Item("name") 
     TextBox3.Text = myDataSet.Tables("Records").Rows(0).Item("id") 
     TextBox4.Text = myDataSet.Tables("Records").Rows(0).Item("pin") 
     TextBox5.Text = myDataSet.Tables("Records").Rows(0).Item("area") 
     TextBox6.Text = myDataSet.Tables("Records").Rows(0).Item("subscription") 
    End If 
End Sub 
+1

debug d'abord et découvrir * quelle ligne * cela se produit –

+0

Où la variable 'myDA' est-elle déclarée dans votre code? Vous le définissez à quelque chose mais vous ne déclarez pas son type de données auparavant –

Répondre

0

votre erreur est ici

  cm.CommandText = "SELECT * FROM records WHERE phone = " +& phoneTextBox.Text 

numéros de téléphone sont des champs de chaîne ou varchar ce qui signifie qu'ils doivent être mis en « quotes'.since vous havent l'isnt requête d'exécution et de vous renvoyer un résultat vide (0 lignes). lorsque vous essayez accéder à la première ligne à savoir la ligne [0] car il n'y a aucune ligne votre OBTIENNENT une exception nullrefrence

modifier votre code comme celui-ci

 cm.CommandText = "SELECT * FROM records WHERE phone = '" +phoneTextBox.Text+"'" 
+0

J'ai modifié et l'erreur persiste – Tunan

+0

il est dit que cette ligne est la source myDA.SelectCommand = cm – Tunan

+0

ok soit utiliser la méthode executenonquery ou dataadapter.fill. N'utilisez pas les deux. essayez de commenter le cm.executenonquery() –