主题:[请教]如何建立两个表的连接
jw55
[专家分:30] 发布于 2007-04-05 11:24:00
小弟刚学asp,有个小问题.
在asp.net中做一个dropdownlist和一个listbox,目的让dropdownlist里不同的内容在listbox中显示出来.数据库中有两个表,一个是departmengt一个是empname(就是把不同部门的人员显示出来)我想问一下怎么样才能将这两个表建立起连接啊??
回复列表 (共5个回复)
沙发
longlong16 [专家分:10670] 发布于 2007-04-05 17:58:00
dripdownlist绑定部门表数据,listbox绑定empname数据,通过dripdownlist控件的SelectedIndexChanged事件 改变listbox的数据 实现二级联动!
板凳
jw55 [专家分:30] 发布于 2007-04-05 21:51:00
照着楼上的方法改了,运行后,为什么我的boxlist里把所有的empname都显示出来了?还有哪里出问题了?
3 楼
longlong16 [专家分:10670] 发布于 2007-04-06 09:36:00
你的dropdownlist控件的autopostback属性有没有设置为true
4 楼
longlong16 [专家分:10670] 发布于 2007-04-06 09:53:00
这样吧 给你代码写出来:
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 楼
longlong16 [专家分:10670] 发布于 2007-04-06 10:03:00
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());
}
只是写了个样子给你参考而已,没有调试,数据库连接也只是个样子,你的连接当然不是跟这一样的,只是让你明白方法,起个抛砖引玉的作用就达到我的目的了!
我来回复