for (int i = 0; i < dt1.Rows.Count; i++)
{
sa = (string[])ArrayList.Adapter((Array)dt1.Rows[i]["ModuleID"]).ToArray(typeof(string));
string s2 = "select * from ws_system where M_ParentID = " + sa[i] + "";
}
大概意思是这个意思,就是把dt1.Rows[i]["ModuleID"]赋值给string数组sa,然后查询。但是这样写是不行的,在循环外调用不了。求一个可用的方法
{
sa = (string[])ArrayList.Adapter((Array)dt1.Rows[i]["ModuleID"]).ToArray(typeof(string));
string s2 = "select * from ws_system where M_ParentID = " + sa[i] + "";
}
大概意思是这个意思,就是把dt1.Rows[i]["ModuleID"]赋值给string数组sa,然后查询。但是这样写是不行的,在循环外调用不了。求一个可用的方法
解决方案 »
- 关于C#调用c++编写的DLL问题
- tableLayoutPanel1控件使用的问题
- 二进制转换为字符串,字符串再还原回原来的二进制?
- C# SQL数据库添加删除修改问题!!!
- 请问除了Control类和其子类外,.net中还有哪个类有Invoke方法
- 如何把项模板里的datakeys传到脚模板里?
- 执行按钮事件,然后打开页面问题,哎,我就是解决不了
- 请问怎么调用Msn api,哪里有msn api
- 为什么这个代码不执行啊
- 急 大家帮忙啊
- 求助呀!为什么我做的程序无法加载dll文件
- C# 哈希表能不能绑定到下拉列表上?或者说下拉列表需要一个显示的值,但是返回的时候要的是编号,表意不清,具体如下解释:
for (int i = 0; i < dt1.Rows.Count; i++)
{
string sa = dt1.Rows[i]["ModuleID"]).Tostring().trim();
string s2 = "select * from ws_system where M_ParentID = " + sa + "";
}
首先,我数组接收是为了这个查询,我要循环查询,where M_ParentID in 后面是1,2,3,4,8我要的效果是
where M_ParentID =1,然后where M_ParentID =2,where M_ParentID =3, where M_ParentID =4 ,where M_ParentID =8
List<int> ids=new List<int>();
for (int i = 0; i < dt1.Rows.Count; i++)
{
ids.Add(Convert.ToInt32(dt1.Rows[i]["ModuleID"]));
string s = "select * from ws_system where M_ParentID = " +dt1.Rows[i]["ModuleID"].ToString()+ "";
}
外面你想怎么用ids就怎么用
public DataTable Module_SelectByID( Userl c)
{
string sql2 = "select ModuleID from ws_system where M_PageCode in (select Pagecode from ws_RolePermission where roleid=(select Power from ws_User where id='" + c.ID + "'))";
/****************************************************************************************************************/
DataTable dt1 = DbHelperSQL.Query(sql2.ToString()/*, parameters*/).Tables[0];
List<DataTable> ass = new List<DataTable>();
for (int i = 0; i < dt1.Rows.Count; i++)
{
string sa = dt1.Rows[i]["ModuleID"].ToString().Trim();
string s2 = "select * from ws_system where M_ParentID = " + sa + "";
}
if (dt1.Rows.Count > 0)
{ return dt1; }
else
{ return null; }
}是这样的,生成菜单,要一个一个的添加子菜单,五个菜单,添加五次(子菜单不一样)。一条SQL肯定不行的(或者我菜鸟不知道),所以用到循环和数组。我的知识有限,所以用for和string数组。没实现,求一个解决方法,传值啊,存储过程啊都行。
public DataTable Module_SelectByID( Userl c)
{
string sql2 = "select ModuleID from ws_system where M_PageCode in (select " + "Pagecode from ws_RolePermission where roleid=(select Power from ws_User where " + "id='" + c.ID + "'))";
DataTable dt1 = DbHelperSQL.Query(sql2.ToString()/*, parameters*/).Tables[0];
string s2 = string.Empty;
for (int i = 0; i < dt1.Rows.Count; i++)
{
string sa = dt1.Rows[i]["ModuleID"].ToString().Trim();
s2 = s2 + sa + ",";
}
s2 = s2.Remove(s2.LastIndexOf(","), 1);//这里是去掉最后一个,号,你也可以用其他方法去掉,号
string sql3 = "select * from ws_system where M_ParentID in (" + s2 + ")";
DataTable dtMenu = DbHelperSQL.Query(sql2.ToString()/*, parameters*/).Tables[0];
return dtMenu;
}不知道这个是不是你想要的效果
{
string sql2 = "select ModuleID from ws_system where M_PageCode in (select " + "Pagecode from ws_RolePermission where roleid=(select Power from ws_User where " + "id='" + c.ID + "'))";
DataTable dt1 = DbHelperSQL.Query(sql2.ToString()/*, parameters*/).Tables[0];
string s2 = string.Empty;
for (int i = 0; i < dt1.Rows.Count; i++)
{
string sa = dt1.Rows[i]["ModuleID"].ToString().Trim();
s2 = s2 + sa + ",";
}
s2 = s2.Remove(s2.LastIndexOf(","), 1);//这里是去掉最后一个,号,你也可以用其他方法去掉,号
string sql3 = "select * from ws_system where M_ParentID in (" + s2 + ")";
DataTable dtMenu = DbHelperSQL.Query(sql3).Tables[0];
return dtMenu;
}
{
StringBuilder sb = new StringBuilder();
sb.Append("select * from ws_system where M_ParentID = " + ModuleID + "");
DataTable dt = new DataTable();
dt = DbHelperSQL.Query(sb.ToString()/*, parameters*/).Tables[0];
if (dt.Rows.Count > 0)
{ return dt; }
else
{ return null; }
}后台csHtmlInputHidden hidd = (HtmlInputHidden)e.Item.FindControl("Hidden1");
string i = hidd.Value;
c.ID = Session["user"].ToString();
DataTable dt = bll.Module_SelectByID(i.ToString()); if (dt.DefaultView.Count > 0)
{
Repeater LeftSubID = (Repeater)e.Item.FindControl("LeftMenu_Sub");
LeftSubID.DataSource = dt;
LeftSubID.DataBind();
}
else
{
e.Item.Visible = false;
}谢谢各位,现在结贴给分!我是这么做的。已经实现了。