2015-06-28 39 views
0

我的数据库包含员工ID,姓名,电子邮件地址和电话号码。我已经使用员工ID选择一个下拉列表,为了这个,我写了这个代码:通过从DropDownList中选择employee_id来获取员工信息

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.UI; 
using System.Web.UI.WebControls; 
using System.Data.SqlClient; 
using System.Data; 

public partial class Employeedetails : System.Web.UI.Page 
{ 
    SqlConnection con = new SqlConnection("Data Source=REVATI-PC;Initial Catalog=Test_Database;Integrated Security=True"); 
    SqlCommand cmd; 
    SqlDataAdapter da; 
    string query; 

    protected void Page_Load(object sender, EventArgs e) 
    { 
     con.Open(); 
     query = "select Employee_ID from Employee"; 
     cmd = new SqlCommand(query, con); 

     SqlDataReader dr = cmd.ExecuteReader(); 

     while (dr.Read()) 
     { 
      DropDownList1.Items.Add(dr[0].ToString()); 
     } 

     con.Close(); 

而是通过点击这些特定的ID,我没有得到其他信息。为此,我使用SelectIndexchanged事件,写一个选择查询

protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e) 
{ 
     string query = "select Employee_ID from Employee where Employee_ID='" + DropDownList1.SelectedValue.ToString() + "'"; 
     con.Open(); 
} 

但它不工作

+0

一点也没有” t看起来像你曾经在DropDownList1_SelectedIndexChanged()执行您的查询... –

+1

[SQL注入警报](http://msdn.microsoft.com/en-us/library/ms161953%28v=sql.105%29。 aspx) - 您应该不**将您的SQL语句连接在一起 - 使用**参数化查询**来避免SQL注入 –

回答

0

试试这个

string empname=""; 
    string query = "select * from Employee where [email protected]"; 
    cmd = new SqlCommand(query, con); 
    cmd.Parameters.AddWithValue("@value1",DropDownList1.SelectedValue.ToString()); 
    con.Open(); 
    SqlDataReader dr = cmd.ExecuteReader(); 
    while (dr.Read()) 
    { 
     empname=dr["Employee_Name"].ToString(); 
    // and so on 
    } 
    con.Close(); 
0

你所看到的问题是双重的。您在查询期间只选择员工编号,而不是任何附加信息,并且如果您发布的功能已完成,您似乎不会运行查询。要选择更多的信息,选择使用SELECT *(如下),或选择具体列名和列名从阅读器读取出来

尝试更新的SelectedIndexChanged函数将此:

protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e) 
{ 
    string query = "select * from Employee where Employee_ID='" + DropDownList1.SelectedValue.ToString() + "'"; 

    conn.Open(); 

    cmd = new SqlCommand(query, con); 

    SqlDataReader dr = cmd.ExecuteReader(); 

    while (dr.Read()) 
    { 
     DropDownList1.Items.Add(dr["<column_name>"].ToString()); 
    } 

    con.Close(); 
}