注册 登录
编程论坛 ASP.NET技术论坛

为什么部门里没有员工,我想删除,无法删除啊?

水晶之恋 发布于 2007-06-02 12:22, 586 次点击

当我要删除部门名"bb",此时部门bb里并无员工
public void DataList_DeleteCommand(object source, System.Web.UI.WebControls.DataListCommandEventArgs e)
{
string str="select count(*) as count,users.dep_id,dep_name from users,dep where users.dep_id=dep.dep_id group by users.dep_id,dep_name";
com=new SqlCommand(str,conn);
conn.Open();
SqlDataReader dr=com.ExecuteReader();
while(dr.Read())
{
int count = Convert.ToInt32(dr["count"]); //count=5 ???
string depname=dr["dep_name"].ToString();
if(count==0)
{string str1="delete * from dep where dep_name=depname";
com1=new SqlCommand(str1,conn);
com1.ExecuteNonQuery();}
else
{
Response.Write("<script>javascript:alert('该部门里还有员工,不允许删除!!!');window.location='dep_manage.aspx'</script>"); //跳到这一步
}
}
dr.Close();
conn.Close();
ListBind();
}

private void ListBind()
{
string strsql;
strsql="select dep_id,dep_name,leader_name,zhize from dep";
ds=new DataSet();
da=new SqlDataAdapter(strsql,conn);
conn.Open();
da.Fill(ds,"Dep");
DataList1.DataSource=ds.Tables[0].DefaultView;
DataList1.DataBind();
conn.Close();
}

[此贴子已经被作者于2007-6-2 13:25:49编辑过]

5 回复
#2
GrimFish2007-06-02 12:39
select count(*) as count,users.dep_id,dep_name from users,dep where users.dep_id=dep.dep_id group by users.dep_id,dep.dep_name

程序一般不应该出现这样的错误,SQL语句都是放到查询分析器里正确了在拿出来用的。
#3
GrimFish2007-06-02 13:29

别回答 了问题在原贴上编辑出新问题。。。这会把人弄混的。

#4
水晶之恋2007-06-02 13:34

好,我知道

#5
GrimFish2007-06-02 13:43

你在DeleteCommand事件里添加查询,而没有删除语句,这点感觉很莫名其妙的,当然不可能删除任何数据。

其实DataList的和其他控件自带的删除事件感觉都不太好用,为什么不自己写一个DELETE

#6
水晶之恋2007-06-02 15:40
我有删除语句的啊
1