本文介绍了从数据库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的数据绑定的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!