2016-03-29 7 views
2

Ich arbeite gerade an einer Aktivität, bei der meine Suchschaltfläche meine Warnmeldung nicht anzeigt, wenn der Benutzer den Nachnamen eingibt, der nicht in der Datenbank gefunden wird. Der Datensatz wird bereits angezeigt, wenn der Nachname in der Datenbank gefunden wird. und ich plane, einen Löschknopf zu setzen, wenn der Datensatz angezeigt wird. Und ich habe keine Ahnung, wie ich es machen soll. frage nur nach einem kleinen Hinweis. Vielen Dank.Schaltfläche "Suchen" auf asp.net mit C# -Codes

using (MySqlConnection con = new MySqlConnection(ConfigurationManager.ConnectionStrings["DBcon"].ConnectionString)) 
     { 
      try 
      { 
       con.Open(); 
       string Sql = "SELECT * FROM contacts WHERE LastName LIKE '" + txtbx_search.Text + "%'"; 

       MySqlDataAdapter da = new MySqlDataAdapter(Sql, con); 
       DataSet ds = new DataSet(); 
       da.Fill(ds); 
       GridView1.DataSource = ds; 
       GridView1.DataBind(); 
      } 

      catch (Exception) 
      { 
       ClientScript.RegisterClientScriptBlock(this.GetType(), "alert", "alert('No record with that last name found!')", true); 
      } 
      finally 
      { 
       con.Close(); 
      } 
+0

Erstens. Wird die Ausnahme ausgelöst? – Eminem

+1

In diesem Szenario muss keine Verbindung geöffnet werden, da Data Adapter die Verbindung für Sie öffnet und schließt. Nur eine Beobachtung. – Jain

Antwort

1

In Ihrem Code die allert innerhalb des catch Block enthalten ist, die nur dann ausgeführt wird, wenn ihr ein Fehler ist. Im erforderlichen Szenario müssen Sie jedoch prüfen, ob Daten im Recordset von der Datenbank vorhanden sind. also musst du darauf achten und darauf basierend Alarm schlagen; und Sie können die Warnung im Catch für die Anzeige der Fehlermeldung verwenden. daher wird das Snippet wie folgt:

try 
    {     
     //Fill the Dataset here 
     if (ds.Tables.Count > 0) 
      { 
      GridView1.DataSource = ds; 
      GridView1.DataBind(); 
      } 
     else 
      { 
      ClientScript.RegisterClientScriptBlock(Page.GetType(), "alert", "alert('No record with that last name found!')", true); 
      } 
    } 
catch (Exception) 
    { 
     ClientScript.RegisterClientScriptBlock(Page.GetType(), "alert", "alert('Error Occured!')", true); 
    } 

Hinweis: Sie müssen, um die Verbindung innerhalb der using-Blöcke zu schließen, da die Verwendung von Block Pflege, die für Sie brauchen. (Credit: Dhaval Patel)

+0

so werde ich meine Bedingung in den try Block setzen? – Alphi

+0

Ich habe die Antwort –

+0

@ un-Glück aktualisiert: denken Sie nicht con.Close() ist nicht erforderlich, weil OP bereits mit Block verwendet? –

2

Sie haben dies wie in dataset überprüfen

if(ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0) 
{ 
    GridView1.DataSource = ds; 
    GridView1.DataBind(); 
} 
else 
{ 
    ClientScript.RegisterClientScriptBlock(this.GetType(), "alert", "alert('No record with that last name found!')", true); 
} 
+0

danke, mein Herr. :) Mein Programm hat schon funktioniert. – Alphi

+0

@Dhaval: Eigentlich Kredit ist deins Danke –

+0

@ un-Glück: Ahhh .... es ist in Ordnung, wir sind hier, um zu helfen, es ist nicht wie Kredit und alle –

0
ClientScript.RegisterClientScriptBlock(this.GetType(), "alert", "<script>alert('No record with that last name found!');</script>", true); 
Verwandte Themen