本文介绍了从数据库ASP DropDownList的数据绑定的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我使用2的DropDownList。第一次为国第二的国家。如果我从1英尺DropDownList中选择印度:第二个是自动绑定印度的所有状态从数据库中自动。

我用 country_tbl 的国家,并与1号的DropDownList和 india_tbl us_tbl绑定 sri_tbl 绑定有关这些国家的状态。

请帮助我。我应该怎么办?

我的code是如下:

 保护无效的Page_Load(对象发件人,EventArgs的发送)
{
    如果(!Page.IsPostBack)
    {
        方法一();
    }
}保护无效方法1()
{
    字符串S1 =数据源= ALOK-PC \\\\ SQLEX $ P $干燥综合征;数据库= mysite的;集成安全=真;
    SqlConnection的CON =新的SqlConnection(S1);
    字符串s2 =选择国家*;
    CMD的SqlCommand =新的SqlCommand(S2,CON);
    con.Open();
    SqlDataReader的博士= cmd.ExecuteReader();
    DropDownList1.DataTextField =名;
    DropDownList1.DataValueField =名;
    DropDownList1.DataSource =博士;
    DropDownList1.DataBind();
    con.Close();
    dr.Close();
}保护无效methodInd()
{
    字符串S1 =数据源= ALOK-PC \\\\ SQLEX $ P $干燥综合征;数据库= mysite的;集成安全=真;
    SqlConnection的CON =新的SqlConnection(S1);
    字符串s2 =选择印度*;
    CMD的SqlCommand =新的SqlCommand(S2,CON);
    con.Open();
    SqlDataReader的博士= cmd.ExecuteReader();
    DropDownList2.DataTextField =名;
    DropDownList2.DataValueField =名;
    DropDownList2.DataSource =博士;
    DropDownList2.DataBind();
    con.Close();
    dr.Close();
}保护无效methodpak()
{
    字符串S1 =数据源= ALOK-PC \\\\ SQLEX $ P $干燥综合征;数据库= mysite的;集成安全=真;
    SqlConnection的CON =新的SqlConnection(S1);
    字符串s2 =选择从巴基斯坦*;
    CMD的SqlCommand =新的SqlCommand(S2,CON);
    con.Open();
    SqlDataReader的博士= cmd.ExecuteReader();
    DropDownList2.DataTextField =名;
    DropDownList2.DataValueField =名;
    DropDownList2.DataSource =博士;
    DropDownList2.DataBind();
    con.Close();
    dr.Close();
}保护无效methodsri()
{
    字符串S1 =数据源= ALOK-PC \\\\ SQLEX $ P $干燥综合征;数据库= mysite的;集成安全=真;
    SqlConnection的CON =新的SqlConnection(S1);
    字符串s2 =选择斯里兰卡*;
    CMD的SqlCommand =新的SqlCommand(S2,CON);
    con.Open();
    SqlDataReader的博士= cmd.ExecuteReader();
    DropDownList2.DataTextField =名;
    DropDownList2.DataValueField =名;
    DropDownList2.DataSource =博士;
    DropDownList2.DataBind();
    con.Close();
    dr.Close();
}保护无效submit_Click(对象发件人,EventArgs的发送)
{}保护无效DropDownList1_SelectedIndexChanged(对象发件人,EventArgs的发送)
{
    如果(DropDownList1.SelectedItem.Text ==印)
    {
        methodInd();
    }
    否则,如果(DropDownList1.SelectedItem.Text ==巴)
    {
        methodpak();
    }
    否则,如果(DropDownList1.SelectedItem.Text ==斯里兰卡)
    {
        methodsri();
    }
}


解决方案

您的做法是错误的,你不应该对每个国家的国家单独的表,所以你可以有一个查询和一个方法绑定到你的国家名单

您的模式改为

  CREATE TABLE国家

  ID INT,
  国家的名字,
  主键(ID)
)Country_State

  ID INT,
  STATE_NAME,
  COUNTRY_ID,
  主键(ID)

该COUNTRY_ID是连接返回到该国的外键

 国家
------------------------
ID名称
------------------------
印度1
2巴基斯坦
country_state
-----------------------------------
ID名称COUNTRY_ID
------------------------------------
1新德里1
2孟加拉国1
3一些印度人1
4 S1_Pakistan 2
5 S2_Pakistan 2

您查询

 选择编号,由国名选择ID,名称从country_states其中COUNTRY_ID = @id

protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
{
     string country_id =  DropDownList1.SelectedValue;
     BindStatesByCountry(country_id);
}

protected void methodsri(string countryId) //change this to BindStatesByCountry
{
    string s1 = "data source=ALOK-PC\\SQLEXPRESS;database=MySite;integrated security=true";
    SqlConnection con = new SqlConnection(s1);
    con.Open();

    string s2 = "select * from country_states where country_id=@countryId";
    SqlCommand cmd = new SqlCommand(s2, con);
    cmd.Parameters.AddWithValue("@countryId", countryId);
    SqlDataReader dr = cmd.ExecuteReader();
    DropDownList2.DataTextField = "name";
    DropDownList2.DataValueField = "name";
    DropDownList2.DataSource = dr;
    DropDownList2.DataBind();
    con.Close();
    dr.Close();
}

Hope this helps

这篇关于从数据库ASP DropDownList的数据绑定的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-20 22:21