| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2844 人关注过本帖
标题:如何将角色与任务的关系写进数据库中?
只看楼主 加入收藏
foshan
Rank: 1
等 级:新手上路
威 望:2
帖 子:605
专家分:0
注 册:2006-3-1
收藏
得分:0 

谢谢斑竹!
问题一 中如果使用第二种方式,在“更新权限”时需将数据库中该角色的所有数据行删除,然后再重新添加该角色与所有任务的关系。以下的代码实现了将权限重新写入数据表,不知是否还有更加好的方法。
CheckBox chk;
foreach (GridViewRow r in GridView2.Rows)
{
chk = (CheckBox)r.FindControl("Checkbox1");
if (chk != null)
{
if (chk.Checked)
{
DataRow addrow = ds1.Tables[0].NewRow();
//addrow[1] = Session["JsId"].ToString();
addrow["RoleId"] = GridView1.SelectedRow.Cells[0].Text.Trim();
addrow["GongNeng_Id"] = r.Cells[0].Text.Trim();
ds1.Tables[0].Rows.Add(addrow);
da1.Update(ds1, "relRoleAndAuthority");
}
}
}
问题二 ,如何将从数据库筛选出来的数据放在 ArrayList 中?以下代码不会怎样写了(红色部分),请帮忙,谢谢!
SqlConnection conn = new SqlConnection("data source=(local);database=****;user=****; password=****");
DataSet ds = new DataSet();
SqlDataAdapter da = new SqlDataAdapter("select GongNeng_Id from relRoleAndAuthority where RoleId = " + GridView1.SelectedRow.Cells[0].Text, conn);
da.Fill(ds, "Authority");
ArrayList MyList = new ArrayList();
MyList = ds.Tables["Authority"].Rows;
????
foreach (GridViewRow row in GridView2.Rows)
{
if (MyList.Contains(row.Cells[1].Text))
{
CheckBox checkBox = (CheckBox)row.FindControl("CheckBox1");
checkBox.Checked = true;
}
}

[此贴子已经被作者于2007-7-31 11:10:47编辑过]


我是2.0超级菜鸟,请多多教导!
2007-07-31 11:09
冰彩虹
Rank: 4
来 自:上海
等 级:贵宾
威 望:14
帖 子:806
专家分:44
注 册:2007-6-28
收藏
得分:0 
红色部分
IList<String> MyList = new List<String>();
foreach (DataRow row in ds.Tables["Authority"].Rows)
{
if (!list.Contains(row[1].ToString()))
list.Add(row[1].ToString());
}

Flying without wings
2007-07-31 11:16
foshan
Rank: 1
等 级:新手上路
威 望:2
帖 子:605
专家分:0
注 册:2006-3-1
收藏
得分:0 
谢谢斑竹!
IList<String> MyList = new List<String>();
foreach (DataRow row in ds.Tables["Authority"].Rows)
{
if (!MyList.Contains(row[1].ToString()))
MyList.Add(row[1].ToString());
}
运用后,遇到两个错误提示,请问应如何解决,谢谢!
错误 1 非泛型 类型“System.Collections.IList”不能与类型参数一起使用
错误 2 找不到类型或命名空间名称“List”(是否缺少 using 指令或程序集引用?)

我是2.0超级菜鸟,请多多教导!
2007-07-31 11:28
冰彩虹
Rank: 4
来 自:上海
等 级:贵宾
威 望:14
帖 子:806
专家分:44
注 册:2007-6-28
收藏
得分:0 
添加System.Collections.Generic引用

Flying without wings
2007-07-31 11:32
foshan
Rank: 1
等 级:新手上路
威 望:2
帖 子:605
专家分:0
注 册:2006-3-1
收藏
得分:0 

谢谢!还有一个问题:如何一次性将GridView中所有的CheckBox均处于非选定状态?以下是笨办法:
foreach (GridViewRow row in GridView2.Rows)
{
CheckBox checkBox = (CheckBox)row.FindControl("CheckBox1");
checkBox.Checked = false;
if (MyList.Contains(row.Cells[0].Text))
{
checkBox.Checked = true;
}
}

[此贴子已经被作者于2007-7-31 11:52:20编辑过]


我是2.0超级菜鸟,请多多教导!
2007-07-31 11:49
冰彩虹
Rank: 4
来 自:上海
等 级:贵宾
威 望:14
帖 子:806
专家分:44
注 册:2007-6-28
收藏
得分:0 
<HeaderTemplate>
<input id="chkAll" onclick="javascript:SelectAllCheckboxes(this);" runat="server" type="checkbox" title="全选" />
</HeaderTemplate>

function SelectAllCheckboxes(spanChk){
 var oItem = spanChk.children;
 var theBox=(spanChk.type=="checkbox")?spanChk:spanChk.children.item[0];
 xState=theBox.checked;
 elm=theBox.form.elements;
 for(i=0;i<elm.length;i++)
 if(elm[i].type=="checkbox" && elm[i].id!=theBox.id)
 {
  if(elm[i].checked!=xState)
  elm[i].click();
 }
}

Flying without wings
2007-07-31 11:54
sean88
Rank: 1
等 级:新手上路
帖 子:146
专家分:0
注 册:2007-3-27
收藏
得分:0 
以下是引用foshan在2007-7-31 11:49:30的发言:

谢谢!还有一个问题:如何一次性将GridView中所有的CheckBox均处于非选定状态?以下是笨办法:
foreach (GridViewRow row in GridView2.Rows)
{
CheckBox checkBox = (CheckBox)row.FindControl("CheckBox1");
checkBox.Checked = false;
if (MyList.Contains(row.Cells[0].Text))
{
checkBox.Checked = true;
}
}


你可以在前台设置模板列的checkBox的Checked 状态为False,然后台循环里根据MyList需要改变checkBox的Checked 状态,如:

前台:
<asp:TemplateColumn HeaderText="checkbox">
<ItemTemplate>
<FONT face="宋体">
<asp:CheckBox id="CheckBox1" runat="server" Checked="False"></asp:CheckBox></FONT>
</ItemTemplate>
</asp:TemplateColumn>

后台:
foreach (GridViewRow row in GridView2.Rows)
{
CheckBox checkBox = (CheckBox)row.FindControl("CheckBox1");
if (MyList.Contains(row.Cells[0].Text))
{
checkBox.Checked = true;
}
}


Knowledge is infinite.
2007-07-31 15:02
foshan
Rank: 1
等 级:新手上路
威 望:2
帖 子:605
专家分:0
注 册:2006-3-1
收藏
得分:0 
以下是引用冰彩虹在2007-7-31 11:32:34的发言:
添加System.Collections.Generic引用

谢谢!问题解决了。


我是2.0超级菜鸟,请多多教导!
2007-08-02 08:47
foshan
Rank: 1
等 级:新手上路
威 望:2
帖 子:605
专家分:0
注 册:2006-3-1
收藏
得分:0 
以下是引用cyyu_ryh在2007-7-30 10:27:44的发言:
首先你的表设计有问题,没主键
谢谢斑竹!昨天晚上专门研究了这方面的知识,终于知道这是多对多的关系,现将关系图呈上,请斑竹看看是否正确?
我还有一个问题不明白:我看有关的示例,发现数据表的主键字段的数据类型是uniqueidentifier,而我现在的主键字段数据类型是int、标识设置为“是”、标识种子设置为“1”、标识递增量设置为“1”。
不知我现在的这种主键的设置与示例中主键的设置对比,有何不妥当的地方?如果数据表的主键字段的数据类型是uniqueidentifier,在将数据写入该数据表时,该字段的内容是否是数据库像“标识种子”一样自动进行填充的?
图片附件: 游客没有浏览图片的权限,请 登录注册

[此贴子已经被作者于2007-8-2 12:43:51编辑过]


我是2.0超级菜鸟,请多多教导!
2007-08-02 08:58
cyyu_ryh
Rank: 8Rank: 8
等 级:贵宾
威 望:45
帖 子:1899
专家分:176
注 册:2006-10-21
收藏
得分:0 

第一张设计错误
主键ID
其他为负键
由其他两张关联
你点击日roles列又键有个主外键关联在里面设置关联


有事无事都密我. MSN: cyyu_ryh@hotmail.co.jp E-mail: cyyu_ryh@
2007-08-02 12:56
快速回复:如何将角色与任务的关系写进数据库中?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.044262 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved