看以下代码..我想拼一个SQL.
可运行到最后总会多出一个"or",
我不知道怎么把这个or去掉.请教一下大家.传进来一个变量,这个变量是(1992,1993,1994,)
我到最后得出的结果是TouristSource = '1992' or TouristSource = '1993' or TouristSource = '1994' or
最后我却不知道怎么把那个or 去掉.
请高手赐教,
public static string Get(string longtext)
{
StringBuilder sb = new StringBuilder(); if (!Anole.Common.Utils.IsEmptyString(longtext))
{
string[] str1 = longtext.Split(',');
if (str1.Length > 1)
{
foreach(string substr in str1)
{
if (!Anole.Common.Utils.IsEmptyString(substr))
{
sb.Append("TouristSource = '"+ substr.ToString() +"' or ");
}
}
}
} return sb.ToString();
}

解决方案 »

  1. public static string Get(string longtext)
            {
                StringBuilder sb = new StringBuilder();            if (!Anole.Common.Utils.IsEmptyString(longtext))
                {
                    string[] str1 = longtext.Split(',');
                    if (str1.Length > 1)
                    {
                        foreach(string substr in str1)
                        {
                            if (!Anole.Common.Utils.IsEmptyString(substr))
                            {
                                sb.Append("TouristSource = '"+ substr.ToString() +"' or ");
                            }
                        }
                    }
                }            string str = sb.ToString();
                
                return str.SubString(0,str.Length-2);

            }
      

  2. public static string Get(string longtext)
            {
                StringBuilder sb = new StringBuilder();            if (!Anole.Common.Utils.IsEmptyString(longtext))
                {
                    string[] str1 = longtext.Split(',');
                    if (str1.Length > 1)
                    {
                       sb.Append("1==2 ");
                       foreach(string substr in str1)
                        {
                            if (!Anole.Common.Utils.IsEmptyString(substr))
                            {
                                sb.Append("or TouristSource = '"+ substr.ToString() +"'");
                            }
                        }
                    }
                }            return sb.ToString();
            }
      

  3. 看看下面的方法看看:public static string Get(string longtext)
            {
                StringBuilder sb = new StringBuilder();            if (!Anole.Common.Utils.IsEmptyString(longtext))
                {
                    string[] str1 = longtext.Split(',');
                    if (str1.Length > 1)
                    {
                        foreach(string substr in str1)
                        {
                            if (!Anole.Common.Utils.IsEmptyString(substr))
                            {
                                sb.Append("TouristSource = '"+ substr.ToString() +"' or ");
                            }
                        }
                    }
                }
                string temp = sb.ToString();
                if(temp.Length > 0)
                {
                    return temp.SubString(0,temp.Length-3);
                }
                else
                    return temp;

            }
      

  4. 得出sb后,再用方法取出最有一个‘OR’
      

  5. ==> foreach(string substr in str1) 
    改成 
    for(int i =0;i<str1.length;i++){
        if(i == str1.length-1){
            sb.Append("TouristSource = '"+ str1[i]);
        }
        else{
            sb.Append("TouristSource = '"+ str1[1] +"' or ");
        }
    }
      


  6. public static string Get(string longtext)
            {
                StringBuilder sb = new StringBuilder();            if (!Anole.Common.Utils.IsEmptyString(longtext))
                {
                    string[] str1 = longtext.Split(',');
                    if (str1.Length > 1)
                    {
                        string tmp  = "or";
                        foreach(string substr in str1)
                        {
                            if (!Anole.Common.Utils.IsEmptyString(substr))
                            {
                                tmp += ("TouristSource = '"+ substr.ToString() +"' or "
                                
                            }
                        }
                        sb.Append(tmp.Trim("or"));
                    }
                }            return sb.ToString();
            }
      

  7. 你在条件的最前面加上0=1 然后把 or提到前面来,最后输出的结果就是where 0=1 or TouristSource = 1 or TouristSource = 2 or TouristSource = 3了
    -----------
    public static string Get(string longtext)
            {
                StringBuilder sb = new StringBuilder();            if (!Anole.Common.Utils.IsEmptyString(longtext))
                {
                    string[] str1 = longtext.Split(',');
                    if (str1.Length > 1)
                    {
                        sb.Append("0=1");
                        for(int i=0;i<=str1.Lenth;i++)
                        {
                            if (!Anole.Common.Utils.IsEmptyString(substr))
                            {
                                sb.Append(" or TouristSource = '"+ substr.ToString()+"'");
                            }
         
                        }
                        foreach(string substr in str1)
                        {
                            if (!Anole.Common.Utils.IsEmptyString(substr))
                            {
                                sb.Append("TouristSource = '"+ substr.ToString() +"' or ");
                            }
                        }
                    }
                }            return sb.ToString();
            }
      

  8. 上面忘把你原来的删了
    ------------
    public static string Get(string longtext) 
            { 
                StringBuilder sb = new StringBuilder();             if (!Anole.Common.Utils.IsEmptyString(longtext)) 
                { 
                    string[] str1 = longtext.Split(','); 
                    if (str1.Length > 1) 
                    { 
                      sb.Append("0=1"); 
                        for(int i=0;i <=str1.Lenth;i++) 
                        { 
                            if (!Anole.Common.Utils.IsEmptyString(substr)) 
                            { 
                                sb.Append(" or TouristSource = '"+ substr.ToString()+"'"); 
                            } 
                        }
                }             return sb.ToString(); 
            } 
      

类似问题 »