2016-08-01 14 views
0

Ich verwende derzeit Visual Studio 2015. Momentan kann ich mithilfe von SqlConnection eine Verbindung mit der Datenbank herstellen und die Daten in einer Gridview anzeigen. Dieser Code befindet sich auf der Ergebnisseite.Erstellen einer SQL-Abfrage mit Bedingungen aus einem Optionsfeld und einer Optionsfeldliste ASP.NET

private void BindGrid() 
    { 
     string strConnString = ConfigurationManager.ConnectionStrings["SQL"].ConnectionString; 
     using (SqlConnection con = new SqlConnection(strConnString)) 
     { 
      if (Interface_trial_1.RadioButtonList1.Checked == true) 
      { 
       using (SqlCommand cmd = new SqlCommand("SELECT * FROM [dbo].[Emp]")) 
      { 
        using (SqlDataAdapter sda = new SqlDataAdapter()) 
        { 
         cmd.Connection = con; 
         sda.SelectCommand = cmd; 
         using (DataTable dt = new DataTable()) 
         { 
          sda.Fill(dt); 
          GridView1.DataSource = dt; 
          GridView1.DataBind(); 
         } 
        } 
       } 
      } 
     } 
    } 

Ich weiß jedoch nicht, wie Sie eine Abfrage mit Bedingungen aus einer Optionsschaltfläche und einer Optionsfeldliste auf der Indexseite ausführen. Außerdem habe ich keine Ahnung, wie man den Wert einer Optionsschaltfläche oder einer Optionsfeldliste von der Indexseite auf die Ergebnisseite überträgt.

Wäre es besser, wenn ich die Abfrage auf der Seite Index ausführen und die Daten auf der Seite Ergebnis anzeigen oder die Werte von der Seite Index übertragen und die Abfrage auf der Seite Ergebnis ausführen würde?

Bitte um Rat. Ich brauche Führung. Danke im Voraus!

Antwort

0

können Sie verschiedene ASP.NET state management techniques verwenden, um die Datenübertragung zwischen pages.For Beispiel Sie Query-Strings verwenden könnten die Daten in den RadioButton und RadioButtonList auf der Index Seite und gibt es bis zur Ergebnis Seite eingegeben zu sammeln.

Index Seite:

protected void btnOrder_Click(object sender, EventArgs e) 
{ 
    bool isHungry = rdbHungry.Checked; 
    string menuItem = rdbMenu.SelectedItem.Text; 

    string url = String.Format("Result.aspx?isHungry={0}&menuItem={1}", isHungry, menuItem); 
    Response.Redirect(url); 
} 

Ergebnisseite:

protected void Page_Load(object sender, EventArgs e) 
{ 
    bool isHungry = Boolean.Parse(Request.QueryString["isHungry"]); 
    string menuItem = Request.QueryString["menuItem"].ToString(); 
    //Write your SQL query here and make sure you check the parameters to prevent SQL injection attacks 
} 
+0

Der Benutzer hat die Taste zur Auswahl und ich habe über 6 Tasten mit 1 Sub-Taste. Wie kann der Code also wissen, welche Schaltfläche ausgewählt ist, und diese auf die Ergebnisseite übertragen? – Brandon

+0

Verwenden Sie die Befehlsschaltflächen - https://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.button.command(v=vs.110).aspx.Wählen Sie die CommandName-Eigenschaft für jede Schaltfläche und Weisen Sie allen Schaltflächen dasselbe OnCommand-Ereignis zu -> dann bewerten Sie im OnCommand-Ereignis die e.CommandName-Eigenschaft, um herauszufinden, auf welche Schaltfläche geklickt wurde –

+0

Der von Ihnen gesendete Link zeigte "Es tut uns leid, die von Ihnen angeforderte Seite konnte nicht gefunden werden" – Brandon