DataTable转换成string[]形式
C# code
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,然后查询。但是这样写是不行的,在循环外调用不了。求一个可用的方法
------解决方案-------------------- dt1.Rows[i]["ModuleID"]好像只是一个值吧,你为什么用数组接收,还ToArray。你直接用string类型的sa接收,tostring()不就得了,下面直接写+sa+
------解决方案-------------------- 探讨 C# code string sql2 = "select * from ws_system where M_ParentID in (select ModuleID from ws_system where M_PageCode in (select Pagecode from ws_RolePermission where roleid=(select Power from ws_User……
------解决方案-------------------- 从你的查询语句可以看出,你完全是个SQL外行,就连多表关联查询都不会写,你这里只要一条SQL语句就可以搞定的,你却要分多次查询嵌套,我都不想看你的那个C#代码了,你的问题应该从SQL语句的地方找起,改写SQL,一步执行到位,提高效率。
------解决方案-------------------- 懒得看 sql 正不正确了
DataTable 转换成 String[] 可以这样
C# code
string[] ary = Array.ConvertAll<DataRow,string>(datatable.Rows, r=>r["ModuleID"].ToString());
------解决方案-------------------- 菜单的数据不会很多,可以一次性读取完到内存,再组合成树
------解决方案-------------------- 探讨 C# code 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 ……