C# 将值从数据库插入dropdownlist失败
我有州和市的下拉列表(级联),如下所示:C# 将值从数据库插入dropdownlist失败,c#,asp.net,sql-server,cascadingdropdown,C#,Asp.net,Sql Server,Cascadingdropdown,我有州和市的下拉列表(级联),如下所示: protected void BindStateDropDown() { string CS = ConfigurationManager.ConnectionStrings["SportsActiveConnectionString"].ConnectionString; using (SqlConnection con = new SqlConnection(CS)) { con.Open();
protected void BindStateDropDown()
{
string CS = ConfigurationManager.ConnectionStrings["SportsActiveConnectionString"].ConnectionString;
using (SqlConnection con = new SqlConnection(CS))
{
con.Open();
SqlCommand cmd = new SqlCommand("select * from tblState", con);
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataSet ds = new DataSet();
da.Fill(ds);
ddlState.DataSource = ds;
ddlState.DataTextField = "StateName";
ddlState.DataValueField = "StateId";
ddlState.DataBind();
}
ddlState.Items.Insert(0, new ListItem("---Select---", "0"));
ddlCity.Items.Insert(0, new ListItem("---Select---", "0"));
}
protected void ddlState_SelectedIndexChanged(object sender, EventArgs e)
{
int StatId = Convert.ToInt32(ddlState.SelectedValue);
string CS = ConfigurationManager.ConnectionStrings["SportsActiveConnectionString"].ConnectionString;
using (SqlConnection con = new SqlConnection(CS))
{
con.Open();
SqlCommand cmd = new SqlCommand("spCities", con);
cmd.Parameters.AddWithValue("@StatId", StatId);
cmd.CommandType = CommandType.StoredProcedure;
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataSet ds = new DataSet();
da.Fill(ds);
ddlCity.DataSource = ds;
ddlCity.DataTextField = "CityName";
ddlCity.DataValueField = "CityId";
ddlCity.DataBind();
}
ddlCity.Items.Insert(0, new ListItem("---Select---", "0"));
}
ddlState.SelectedIndex = ddlState.Items.IndexOf(ddlState.Items.FindByText(rdr["State"].ToString()));
ddlCity.SelectedIndex = ddlCity.Items.IndexOf(ddlCity.Items.FindByText(rdr["City"].ToString()));
我使用它将值插入数据库,如下所示:
cmd.Parameters.AddWithValue("@State", ddlState.SelectedItem.Text);
cmd.Parameters.AddWithValue("@City", ddlCity.SelectedItem.Text);
这很好,可以在数据库表中插入州和城市。现在,我尝试在编辑页面上显示值,如下所示:
protected void BindStateDropDown()
{
string CS = ConfigurationManager.ConnectionStrings["SportsActiveConnectionString"].ConnectionString;
using (SqlConnection con = new SqlConnection(CS))
{
con.Open();
SqlCommand cmd = new SqlCommand("select * from tblState", con);
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataSet ds = new DataSet();
da.Fill(ds);
ddlState.DataSource = ds;
ddlState.DataTextField = "StateName";
ddlState.DataValueField = "StateId";
ddlState.DataBind();
}
ddlState.Items.Insert(0, new ListItem("---Select---", "0"));
ddlCity.Items.Insert(0, new ListItem("---Select---", "0"));
}
protected void ddlState_SelectedIndexChanged(object sender, EventArgs e)
{
int StatId = Convert.ToInt32(ddlState.SelectedValue);
string CS = ConfigurationManager.ConnectionStrings["SportsActiveConnectionString"].ConnectionString;
using (SqlConnection con = new SqlConnection(CS))
{
con.Open();
SqlCommand cmd = new SqlCommand("spCities", con);
cmd.Parameters.AddWithValue("@StatId", StatId);
cmd.CommandType = CommandType.StoredProcedure;
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataSet ds = new DataSet();
da.Fill(ds);
ddlCity.DataSource = ds;
ddlCity.DataTextField = "CityName";
ddlCity.DataValueField = "CityId";
ddlCity.DataBind();
}
ddlCity.Items.Insert(0, new ListItem("---Select---", "0"));
}
ddlState.SelectedIndex = ddlState.Items.IndexOf(ddlState.Items.FindByText(rdr["State"].ToString()));
ddlCity.SelectedIndex = ddlCity.Items.IndexOf(ddlCity.Items.FindByText(rdr["City"].ToString()));
abpve代码绑定的是州,而不是城市。城市下拉列表仍然显示---Select---。绑定城市后,我应该能够选择任何其他城市/州并再次更新。
任何帮助都将不胜感激试试这个
ddlState.SelectedIndex = ddlState.Items.IndexOf(ddlState.Items.FindByText(rdr["State"].ToString()));
然后将城市值设置为隐藏值hf_city
hf_city.Value = rdr["City"].ToString();
然后关闭读卡器和连接,然后再次调用在ddlState\u SelectedIndexChanged上创建的函数
int StatId = Convert.ToInt32(ddlState.SelectedValue);
string CS = ConfigurationManager.ConnectionStrings["SportsActiveConnectionString"].ConnectionString;
using (SqlConnection con = new SqlConnection(CS))
{
con.Open();
SqlCommand cmd = new SqlCommand("spCities", con);
cmd.Parameters.AddWithValue("@StatId", StatId);
cmd.CommandType = CommandType.StoredProcedure;
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataSet ds = new DataSet();
da.Fill(ds);
ddlCity.DataSource = ds;
ddlCity.DataTextField = "CityName";
ddlCity.DataValueField = "CityId";
ddlCity.DataBind();
}
ddlCity.Items.Insert(0, new ListItem("---Select---", "0"));
ddlCity.SelectedIndex = ddlCity.Items.IndexOf(ddlCity.Items.FindByText(hf_city.Value));
创建另一个绑定cityDropdownlist的方法:
protected void BindCityDropDown(int StatId)
{
string CS = ConfigurationManager.ConnectionStrings["SportsActiveConnectionString"].ConnectionString;
using (SqlConnection con = new SqlConnection(CS))
{
con.Open();
SqlCommand cmd = new SqlCommand("spCities", con);
cmd.Parameters.AddWithValue("@StatId", StatId);
cmd.CommandType = CommandType.StoredProcedure;
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataSet ds = new DataSet();
da.Fill(ds);
ddlCity.DataSource = ds;
ddlCity.DataTextField = "CityName";
ddlCity.DataValueField = "CityId";
ddlCity.DataBind();
}
ddlCity.Items.Insert(0, new ListItem("---Select---", "0"));
}
调用此内部DropDownList选定索引更改:
protected void ddlState_SelectedIndexChanged(object sender, EventArgs e)
{
int StatId = Convert.ToInt32(ddlState.SelectedValue);
BindCityDropdown(StatId);
}
现在在“编辑”部分中,绑定citydropdownlist,然后赋值:
ddlState.SelectedIndex = ddlState.Items.IndexOf(ddlState.Items.FindByText(rdr["State"].ToString()));
int StatId = Convert.ToInt32(ddlState.SelectedValue);
BindCityDropdown(StatId);
ddlCity.SelectedIndex = ddlCity.Items.IndexOf(ddlCity.Items.FindByText(rdr["City"].ToString()));
请发布绑定组合框的代码。请先绑定组合框,然后设置选定索引。为ddlcity和DDLSTATE使用不同的数据集。您是否尝试过使用此
dlState.SelectedValue=rdr[“State”]。ToString()代码>@Suprabhat-不,它甚至不绑定状态