ArrayList al = new ArrayList(); string str=""; for(int i=0;i<al.count;i++) { if(i==0) { str="'"+al[i].ToString()+"'"; } else { str+=",'"+al[i].ToString()+"'"; } }select * from test where id in ("+str+");
string aa=""; string [] arr; arr=new string[5]; arr[0]="3"; arr[1]="4"; . . .for (int i=0;i<arr.length;i++) { aa+=arr[i]+","; } session["bb"]=aa; "select * from table where id in("+session["bb"]+")"
用,隔开
然后就可以用SQL 的IN()了
string str="";
for(int i=0;i<al.count;i++)
{
if(i==0)
{
str="'"+al[i].ToString()+"'";
}
else
{
str+=",'"+al[i].ToString()+"'";
}
}select * from test where id in ("+str+");
string [] arr;
arr=new string[5];
arr[0]="3";
arr[1]="4";
.
.
.for (int i=0;i<arr.length;i++)
{
aa+=arr[i]+",";
}
session["bb"]=aa;
"select * from table where id in("+session["bb"]+")"
你把数组里面的每个循环取出来
用,隔开
然后就可以用SQL 的IN()了
==正解。
Session["user_edit"] = aa; //给Session赋值
string[] bb = (string[])Session["user_edit"];
string c = "";
for(int i = 0; i < bb.Length; i++)
{
if(i==0)
{
c += bb[i];
}
else
{
c += bb[i];
c += ",";
}
}c即是where 后有lm_id in后里的值
Session["user_edit"] = aa; //给Session赋值
string[] bb = (string[])Session["user_edit"];
string c = "";
for(int i = 0; i < bb.Length; i++)
{
if(i==0)
{
c += bb[i];
}
else
{c += ",";
c += bb[i];
}
}
里面的值就是那样的啊."如果lm_id等于001,in后面的值等于(001001,001002,002003)"
楼主的意思是什么?
直接用一个string类型的,把里面的id都用,号搁开,这样你放到session中后
在别的地方调用 就可以直接写成 "where id not id(" + (string)Session["idArray"] + ")"最后你在做这样的string的时候一定要小心不要写错了,如果这个string最后或者最前的字符是“,”的话一定要过滤到,不然sql会抱错!