首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >3 DropDownLists搜索函数

3 DropDownLists搜索函数
EN

Stack Overflow用户
提问于 2012-03-26 06:09:37
回答 2查看 483关注 0票数 1

我是c#的新手,就像在。

目前,我正在c#中使用3 DropDownLists和提交按钮进行搜索。当用户在DropDownList上选择一个项并单击submit时,它将打印相应选择的表。

有3个DropDownLists:

  1. 一个省,
  2. 城市,
  3. 专业化。

这将搜索适合选择的现有医生。例如,我选择province1在第1 DropDownList,city1在第2和心理学家在第3,当提交按钮被启动,它将打印可用的医生,在province1,city1,有一个心理学家的专业。

我已经有了一个代码,还在计算,但是,当我单击submit按钮时,什么都没有发生。有人能帮我吗?

以下是我迄今所做的工作:

代码语言:javascript
复制
public partial class Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        System.Threading.Thread.Sleep(1000);

        if (!IsPostBack)
        {
            string constring = ConfigurationManager.ConnectionStrings["AccreString"].ConnectionString;
            SqlConnection conn = new SqlConnection(constring);
            DataTable dt = new DataTable("emed_province");

            using (conn)
            {
                conn.Open();
                SqlCommand comm = new SqlCommand("SELECT * FROM emed_province ORDER BY PROVINCE_NAME ASC", conn);
                SqlDataAdapter adptr = new SqlDataAdapter(comm);
                adptr.Fill(dt);
            }

            ddlProvince.DataSource = dt;
            ddlProvince.DataTextField = "PROVINCE_NAME";
            ddlProvince.DataValueField = "PROVINCE_CODE";
            ddlProvince.DataBind();

            ddlProvince.Items.Insert(0, new ListItem("---------------SELECT---------------", "0"));
            ddlCity.Items.Insert(0, new ListItem("---------------SELECT---------------", "0"));
            ddlSpec.Items.Insert(0, new ListItem("---------------SELECT---------------", "0"));
        }
    }

    protected void ddlProvince_SelectedIndexChanged(object sender, EventArgs e)
    {
        System.Threading.Thread.Sleep(1000);

        string constring = ConfigurationManager.ConnectionStrings["AccreString"].ConnectionString;
        SqlConnection conn = new SqlConnection(constring);
        DataTable dt = new DataTable("emed_province");

        using (conn)
        {
            conn.Open();
            SqlCommand comm = new SqlCommand("SELECT * FROM emed_city WHERE PROVINCE_CODE =@pcode", conn);
            comm.Parameters.AddWithValue("@pcode", ddlProvince.SelectedValue);
            SqlDataAdapter adptr = new SqlDataAdapter(comm);
            adptr.Fill(dt);

            SqlParameter param = new SqlParameter();
            param.ParameterName = "@pcode";
            param.Value = ddlProvince;

            comm.Parameters.Add(param);
        }
        ddlCity.DataSource = dt;
        ddlCity.DataTextField = "CITY_NAME";
        ddlCity.DataValueField = "CITY_CODE";
        ddlCity.DataBind();

        ddlCity.Items.Insert(0, new ListItem("---------------SELECT---------------", "0"));
    }

    protected void ddlCity_SelectedIndexChanged(object sender, EventArgs e)
    {
        System.Threading.Thread.Sleep(1000);

        string constring = ConfigurationManager.ConnectionStrings["AccreString"].ConnectionString;
        SqlConnection conn = new SqlConnection(constring);
        DataTable dt = new DataTable("emed_city");

        using (conn)
        {
            conn.Open();
            SqlCommand comm = new SqlCommand("SELECT * FROM emed_specialization", conn);
            comm.Parameters.AddWithValue("@ccode", ddlCity.SelectedValue);
            SqlDataAdapter adptr = new SqlDataAdapter(comm);
            adptr.Fill(dt);

            SqlParameter param = new SqlParameter();
            param.ParameterName = "@ccode";
            param.Value = ddlCity;

            comm.Parameters.Add(param);
        }
        ddlSpec.DataSource = dt;
        ddlSpec.DataTextField = "SPEC_NAME";
        ddlSpec.DataValueField = "SPEC_CODE";
        ddlSpec.DataBind();

        ddlSpec.Items.Insert(0, new ListItem("---------------SELECT---------------", "0"));
    }

    protected void btnSub_Click(object sender, EventArgs e)
    {
        string constring = ConfigurationManager.ConnectionStrings["AccreString"].ConnectionString;
        SqlConnection conn = new SqlConnection(constring);
        DataTable dt = new DataTable("emed_doctors");
        using (conn)
        {
            conn.Open();
            SqlCommand comm = new SqlCommand("SELECT DOCTOR_NAME FROM emed_doctors where Province = '" + ddlProvince.SelectedItem.ToString() + "'", conn);
            SqlDataAdapter adptr = new SqlDataAdapter(comm);
            adptr.Fill(dt);
        }
    }
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-03-26 06:14:18

更改这一行代码,在submit按钮中单击函数

正确代码:

代码语言:javascript
复制
SqlCommand comm = new SqlCommand("SELECT DOCTOR_NAME FROM emed_doctors where province = '" + ddlProvince.SelectedItem.ToString() + "'", conn); 

因为正如您所看到的,您的代码查询是不一致的,请查找您的代码,这是不正确的。

错误代码:

代码语言:javascript
复制
SqlCommand comm = new SqlCommand("SELECT DOCTOR_NAME FROM emed_doctors where (" + ddlProvince.SelectedItem.ToString() + " ", conn); 

编辑:

如果你想显示你在DataTable中得到的记录,你要么需要循环遍历记录,要么你需要使用GridView来实现.我想你错过了那个东西

在上面的一句中,在where子句中,您忽略了需要对其进行筛选的文件的名称.我已经通过修改这个条件编写了更新代码。

参见MSDN中的GridView

票数 1
EN

Stack Overflow用户

发布于 2012-03-26 06:45:18

你说过点击提交后什么都不会发生。但在btnSub_Click中,我没有看到在页面上显示结果或更改任何内容的任何内容。您应该将dt绑定到某些控件,如网格视图等。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9867381

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档