2017-05-25 2 views
0
<asp:DropDownList ID="DropDownList1" runat="server" DataSourceID="SqlDataSource1" DataTextField="Case_Id" DataValueField="Case_Id" Height="16px" OnSelectedIndexChanged="DropDownList1_SelectedIndexChanged" Width="184px"> 
</asp:DropDownList> 

und C# -Code istWie den Wert des ausgewählten Index in Dropdownlist in asp.net finden

protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e) 
{ 

    cmd.CommandText = "Select * from tb5 where Case_Id="+Convert.ToInt64(DropDownList1.SelectedIndex); 
    SqlDataReader r = cmd.ExecuteReader(); 
    bool b = r.Read(); 
    TextBox2.Text = r["Case_Name"].ToString(); 
    TextBox2.ReadOnly = false; 
} 
+0

'DropDownList1.SelectedItem.Value' ?? –

+0

Welche Fehlermeldung haben Sie erhalten? In dieser Anweisung: Convert.ToInt64 (DropDownList1.SelectedIndex) Sie konvertieren eine Zeichenfolge zu Int, um eine andere Zeichenfolge zu verketten. Du musst das nicht tun. Beseitigen Sie einfach die Konvertierung: cmd.CommandText = "Wählen * aus tb5 where Case_Id =" + DropDownList1.SelectedIndex; Wenn dies nicht funktioniert, versuchen Sie den .Value – RMH

Antwort

2

Sie AutoPostBack="true" in Markup

Zweitens fehlt, bist du Index immer von Ausgewähltes Element, was bedeutet, dass Sie die Nummer 0 für das erste ausgewählte Element erhalten, 1 für das zweite usw., die wahrscheinlich nicht mit Ihrer ID übereinstimmt.

Ändern Sie den Code hinter wie folgt aus:

protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e) 
{ 

    cmd.CommandText = "Select * from tb5 where Case_Id= @CaseId"; 
    cmd.Parameters.Add(new SqlParameter("@CaseId", SqlDbType.BigInt)).Value = Convert.ToInt64(DropDownList1.SelectedValue); 
    SqlDataReader r = cmd.ExecuteReader(); 
    bool b = r.Read(); 
    TextBox2.Text = r["Case_Name"].ToString(); 
    TextBox2.ReadOnly = false; 
} 
+0

Eine Ausnahme vom Typ 'System.FormatException' in mscorlib.dll aufgetreten ist aber nicht in Benutzercode –

+0

@NomanNomeButt Parametertyp war Int aber sollte 'BigInt' wenn Sie verwenden 'long' /' int64' als Id. Ich habe meine Antwort bearbeitet. Wenn es immer noch eine Ausnahme auslöst - das könnte ein paar Dinge sein: Ihr Drop-down enthält keine Werte, die in 'int64' konvertiert werden können (wie Buchstaben) oder nichts ist ausgewählt – Nino

Verwandte Themen