回 帖 发 新 帖 刷新版面

主题:[请教]如何建立两个表的连接

小弟刚学asp,有个小问题.
在asp.net中做一个dropdownlist和一个listbox,目的让dropdownlist里不同的内容在listbox中显示出来.数据库中有两个表,一个是departmengt一个是empname(就是把不同部门的人员显示出来)我想问一下怎么样才能将这两个表建立起连接啊??

回复列表 (共5个回复)

沙发

dripdownlist绑定部门表数据,listbox绑定empname数据,通过dripdownlist控件的SelectedIndexChanged事件 改变listbox的数据 实现二级联动!

板凳

照着楼上的方法改了,运行后,为什么我的boxlist里把所有的empname都显示出来了?还有哪里出问题了?

3 楼

你的dropdownlist控件的autopostback属性有没有设置为true

4 楼

这样吧 给你代码写出来:
DropDownList id是 dpdl,ListBox id 是lb
在代码页里写两个绑定函数

///该函数绑定下拉列表
private void Binddpdl()
{
   string sqlStr = "连接字符串";
   SqlConnection sqlCon = new SqlConnection(sqlStr);
   string cmdText = "select * from departmengt";
   SqlCommand sqlCmd = new SqlCommand(cmdText,sqlCon);
   SqlDataReader dr = new SqlDataReader();
   try
   {
      sqlCon.Open();
      ///绑定数据
      dr = sqlCmd.ExecuteReader(CommandBehavior.CloseConnection);
      while(dr.read())
     {
        dpdl.Items.Add(new ListItem(dr["部门名称字段"].Tostring(),dr["部门id字段"].Tostring());
     }
   }
   catch(SqlException sqlex)
   {
       ///显示链接错误的消息
       Response.Write(sqlex.Message + "<br>");
   }
}

///该函数绑定ListBox
private void Bindlb(string ID)
{
   string sqlStr = "连接字符串";
   SqlConnection sqlCon = new SqlConnection(sqlStr);
   string cmdText = "";
   if(ID == ""){ cmdText = "select * from ..." //取得所有记录 }
   else
   { cmdTex = "select * from ... where ..." //根据部门id取记录 }
   SqlDataAdapter myda = new SqlDataAdapter(cmdText,sqlCon);
   DataSet dss = new DataSet();
   try
   {
      sqlCon.Open();
      myda.Fill(dss);
      ///绑定dpdl的数据
      lb.DataSource = dss.Tables[0].DefaultView;
      ///设置Text和Value
      lb.DataTextField = "员工名称字段";//自己决定
      lb.DataValueField = "员工id字段";
      ///绑定数据
      lb.DataBind();
   }
   catch(SqlException sqlex)
   {
       ///显示链接错误的消息
       Response.Write(sqlex.Message + "<br>");
   }
   finally
   {
       ///关闭数据库的链接
       sqlCon.Close();
   }
}

5 楼

protected void Page_Load(object sender, EventArgs e)
{
     if(!Page.IsPostBack)
     {
        ///绑定下拉列表
        private void Binddpdl();
        ///绑定ListBox
        private void Bindlb("");
     }
}

protected void dpdl_SelectedIndexChanged(object sender,EventArgs e)
{
    ///重新绑定ListBox
    private void Bindlb(dpdl.SelectedItem.value.Tostring());
}

只是写了个样子给你参考而已,没有调试,数据库连接也只是个样子,你的连接当然不是跟这一样的,只是让你明白方法,起个抛砖引玉的作用就达到我的目的了!

我来回复

您尚未登录,请登录后再回复。点此登录或注册