我有一个表table1 现在只有4行,里面的字段 code 从第一行到第四行分别是: 1,2,3,4. 我现在有一个字符串abc=",2,3,5,",我现在要删除表里有的,但是字符串里没有 的如:1 和4, 两个都有的比如 2 和3就不变,表里没有\但字符串里有的就插入.比如 5.   小弟这里先行谢过了.

解决方案 »

  1.   

    DeleteSVToDept(_nID); //全部都删除了
    //新增加
    string[] ary=abc.Split(',');
           foreach(string str in ary)
           { 
    if(str!="")
    {
    CreateSVToDept(_nID,int.Parse(str));//插入
             }
    } 这是原来的代码,只是 这个是 全部删除了,重新插入的.有些数据就没有了,所以想改改.还望各位大虾能指导哦.
      

  2.   

    up . 没有人回答。怪我自己题目取错了,应该叫什么 “MM想请教GG……  小女子……”。喳喳
      

  3.   

    注意你説話時的標點符號,面得讓人理解起來太困難!可用ary.indexof方法。
      

  4.   

    你可以用in和not in来判断。
    例:删除表中有的,字串中没有的,可以这样写
    delete from table1 where code not in('2','3','5')至于如何将,2,3,5,转换成'2','3','5'这个你自己解决吧。
      

  5.   

    表里没有,但字串中有的这样处理,你先将2,3,5折开。
    循环处理
    在存储过程中这样判断
    if not exists (select 1 from table1 where code=2)  --如果2在字串中有,但表中没有
        insert into table1(code) values(2)   --插入
      

  6.   

    “至于如何将,2,3,5,转换成'2','3','5'这个你自己解决吧。"
    我 不会啊,老大。救命……谁能告诉我 string abc=",4,5,6,7",象这样的怎么转换成'4','5','6','7'.
    好在sql 语句里用not in('').     大虾救命……
      

  7.   

    自己回答自己好了
    string[] ary=_strDutyDeptID.Split(',');
    string strAry;
    strAry="";
    for(int k=0;k<ary.Length;k++)
    {
    if(k==0)
    strAry=strAry+"\'"+ary[k]+"\'";
    else
    strAry =strAry +",\'"+ary[k]+"\'";
    }
    然后select * from table1 where code not in (strAry);