0
我试图动态地将数据检索到标签。意思说标签会改变,因为我改变DropDownList选择的项目。可能吗?使用DropDownList动态检索数据库信息到标签
ASPX:
<asp:DropDownList ID="ddl_CNo" AutoPostBack="true" runat="server" Height="16px" Width="138px" OnSelectedIndexChanged="ddl_CNo_SelectedIndexChanged" >
</asp:DropDownList>
aspx.cs:
//page load box retrieve
SqlConnection myConnect2 = new SqlConnection(_connStr);
string strCommandText2 = "SELECT Card_Type, Card_Type2, Card_Number, Card_Number2, Name_On_Card, Name_On_Card2, Expired_Date, Expired_Date2 From Card_Details where Card_Id = @Card_Id";
myConnect2.Open();
SqlCommand cmd2 = new SqlCommand(strCommandText2, myConnect2);
cmd2.Parameters.AddWithValue("@Card_Id", 1);
////open connection and retrieve data by calling ExecuteReader
SqlDataReader dr2 = cmd2.ExecuteReader();
if (dr2.Read())
{
string CNo1 = dr2["Card_Number"].ToString();
string CNo2 = dr2["Card_Number2"].ToString();
CNo = new List<string>();
CNo.Add(dr2["Card_Number"].ToString());
CNo.Add(dr2["Card_Number2"].ToString());
ddl_CNo.DataSource = CNo;
ddl_CNo.DataBind();
ddl_CNo.Text = dr2["Card_Number"].ToString();
ddl_CNo.Text = dr2["Card_Number2"].ToString();
Lbl_CardName.Text = dr2["Name_On_Card"].ToString();
Lbl_CardName.Text = dr2["Name_On_Card2"].ToString();
Lbl_CardType.Text = dr2["Card_Type"].ToString();
Lbl_CardType.Text = dr2["Card_Type2"].ToString();
Lbl_EDate.Text = dr2["Expired_Date"].ToString();
Lbl_EDate.Text = dr2["Expired_Date2"].ToString();
}
dr2.Dispose();
dr2.Close();
myConnect2.Close();
if (!IsPostBack)
{
LoadCart();
}
}
DDLSelectedIndexChanged:
protected void ddl_CNo_SelectedIndexChanged(object sender, EventArgs e)
{
{
SqlConnection myConnect2 = new SqlConnection(_connStr);
string strCommandText2 = "SELECT Card_Type, Card_Type2, Card_Number, Card_Number2, Name_On_Card, Name_On_Card2, Expired_Date, Expired_Date2 From Card_Details where Card_Id = @Card_Id";
myConnect2.Open();
SqlCommand cmd2 = new SqlCommand(strCommandText2, myConnect2);
cmd2.Parameters.AddWithValue("@Card_Id", 1);
SqlDataReader dr2 = cmd2.ExecuteReader();
if (dr2.Read())
{
string CNo1 = dr2["Card_Number"].ToString();
string CNo2 = dr2["Card_Number2"].ToString();
CNo = new List<string>();
CNo.Add(dr2["Card_Number"].ToString());
CNo.Add(dr2["Card_Number2"].ToString());
ddl_CNo.DataSource = CNo;
ddl_CNo.DataBind();
if (ddl_CNo.SelectedItem.Equals("Card_Number"))
{
Lbl_CardName.Text = dr2["Name_On_Card"].ToString();
Lbl_CardType.Text = dr2["Card_Type"].ToString();
Lbl_EDate.Text = dr2["Expired_Date"].ToString();
}
else if (ddl_CNo.SelectedItem.Equals("Card_Number2"))
{
Lbl_CardName.Text = dr2["Name_On_Card2"].ToString();
Lbl_CardType.Text = dr2["Card_Type2"].ToString();
Lbl_EDate.Text = dr2["Expired_Date2"].ToString();
}
dr2.Dispose();
dr2.Close();
myConnect2.Close();
}
}
}
我真正的新所有这些,任何帮助非常感谢:)
你正在做这个正确的。但为什么不使用数据适配器并使用断开模型。它会更容易。但最新的问题 –
像我提供的图片:卡号DDL不显示任何值(DDL中没有)我需要从datalist检索DDL信息,但由于某种原因,它不工作 –
@john所有代码移动它下'Page_Load' – Webruster