【问题标题】:Fetch employee information by selecting employee_id from DropDownList通过从 DropDownList 中选择 employee_id 来获取员工信息
【发布时间】:2015-06-28 19:32:48
【问题描述】:

我的数据库有员工 ID、姓名、电子邮件、地址和电话号码。我使用了一个下拉列表来选择员工 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(); 
}

但它不起作用

【问题讨论】:

  • 看起来您从未在 DropDownList1_SelectedIndexChanged() 中执行过查询...
  • SQL Injection alert - 您应该将您的 SQL 语句连接在一起 - 使用 参数化查询 来避免 SQL 注入

标签: c# asp.net sql-server


【解决方案1】:

试试这个

    string empname="";
    string query = "select * from Employee where Employee_ID=@value1";
    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();

【讨论】:

    【解决方案2】:

    您看到的问题有两个。您在查询期间仅选择员工 ID,而不是任何其他信息,并且如果您发布的功能已完成,您似乎没有在运行您的查询。要选择其他信息,请选择选择 *(如下所示),或选择特定的列名并按列名从阅读器中读出

    尝试将您的 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();
    }
    

    【讨论】:

      猜你喜欢
      • 2017-02-22
      • 1970-01-01
      • 2020-11-22
      • 2023-03-23
      • 2022-01-10
      • 2017-12-19
      • 2020-10-08
      相关资源
      最近更新 更多