2017-04-07 3 views
1

hier ist mein Code, aber wenn ich dropdownlist.selectedvalue ersetzen mit einem real ID es funktioniert gut, so brauche ich diese Änderung, wenn ich eine andere ID von Dropdownlist auswählen:Abrufen von Daten aus zu Textbox nach Dropdownlist-Auswahl

protected void Page_Load(object sender, EventArgs e) 
{ 

    SqlCommand com = new SqlCommand("select * from UsersTable where UserName='" + DropDownListUsers.SelectedValue + "'", conn); 
    try 
    { 
     conn.Open(); 

     using (SqlDataReader red = com.ExecuteReader()) 
     { 
      while (red.Read()) 
      { 
       TextBoxpass.Text = (red["password"].ToString()); 
       TextBoxFname.Text = (red["Fname"].ToString()); 
       TextBoxLname.Text = (red["Lname"].ToString()); 
       TextBoxAddress.Text = (red["Address"].ToString()); 
       TextBoxPhone.Text = (red["PhoneNo"].ToString()); 
       TextBoxEmail.Text = (red["Email"].ToString()); 
       TextBoxpass.Text = (red["password"].ToString()); 
      } 
     } 
    } 

    finally 
    { 
     conn.Close(); 
    } 
} 

Antwort

0

fügen Sie einfach .ToString();

DropDownListUsers.SelectedValue.ToString(); 

und sicher wie @Hung sagte, wenn Sie es in Laden der Seite stellen Sie sicher stellen wollen

DropDownListUsers.SelectedIndex = 0; 

oder einen Standardwert vor dem Code setzen oben

+0

Danke, es hat gut funktioniert < 3 –

0

Es gibt einige Dinge, die Sie hier tun müssen, um Ihren Code besser zu machen.

Sie benötigen obigen Code zum changed Ereignisse Ihrer DropDownListUsers nicht die Seite zu laden, zu binden, oder wenn Sie es in Laden der Seite setzen wollen, müssen Sie standardmäßig ausgewählt Wert Ihres Dropdown angeben.

//server side code 
protected void DropDownListUsers_SelectedIndexChanged(object sender, EventArgs e) 
{ 
    //code here 
} 
//Your markup 
OnSelectedIndexChanged="ddlCompany_SelectedIndexChanged" AutoPostBack="True" 

Verwendung parametrisierte Abfragen https://msdn.microsoft.com/en-us/library/bb738521(v=vs.100).aspx