本帖最后由 idonotknowwhatislife 于 2011-01-07 14:29:25 编辑

解决方案 »

  1.   

    不好意思,贴过来的代码修改了一下,结果有个地方没注意到…… ==!    protected void UpdateState(string stateA, string stateB)
        {   
            if (stateA == "0")
            {
                stateA = "1";
                SetLoBcodeState(stateB);//这里应该是 SetStateB(stateB)
            }
            else
            {
                stateA = "0";
                SetLoBcodeState(stateB);//这里应该是 SetStateB(stateB)
            }
        }
      

  2.   

    那要是很大的数据量呢?比如这个平时使用的不是太多,每天1W次,一两年之后要对数据库批量修改,可能到时数据库里有几百万条记录,那么这两者的差别呢?
    呃,咱们先单纯的讨论讨论算法的事,先不考虑SQL
      

  3.   

    这种问题,我们考虑的不是效率,而是规则的可配置性不要依赖于你现在的条件,现在的条件实际上过于巧合了。依靠巧合编程,并且依靠巧合去优化,不是一个很好的习惯。so,如果从规则配置的角度出发,一个比较正常的解法是    Dictionary<string,Func<string,bool>> ruls=new Dictionary<string,Func<string,bool>>();
      ruls.add("1",c=>c=="0"||c=="1");
      

  4.   

    呃……貌似我的习惯很不好……总是想取点巧,省点事,结果最后还是要改来改去的费劲……
    那个,wanghui0380(放歌)“Dictionary<string,Func<string,bool>> ruls=new Dictionary<string,Func<string,bool……”这个是什么?
      

  5.   

    字典类我倒是知道,其实我是想问“ Dictionary<string,Func<string,bool>> ruls=new Dictionary<string,Func<string,bool>>();
      ruls.add("1",c=>c=="0"||c=="1");”是什么意思的……手一抖,少选中了一行……
    主要是“c=>c=="0"||c=="1"”不明白…… 是lamada表达式?没玩过……我去搜搜看……
    唉,VS被我玩崩溃了……呵呵……
      

  6.   

    如果是固定的0,1,2,3,LZ为什么不用byte类型而用string来表示它们呢?
      

  7.   

    这个数据库是别人写好的,如果修改这两个字段的话,代码里会有许多地方需要修改……麻烦……
    PS:数据库里定义的这两个字段的类型是varchar(1),这里用string来表示会有什么不妥的地方吗?
      

  8.   

    我嘞个去!
    傻了……byte是8位无符号整数,我给当成char了……想什么呢我……唉……
    我就郁闷了,看来要好好休息休息了……