在做民意调查页面时,往往是新建一个调查的主题,然后是不定多个项,添加成为选项。但是,在添加时,很多个textbox不可能每一个都会填入选项内容,因为在实际应用中,根本用不了这么多,于是这就产生了未使用的textbox没有填,即为空的问题,并且,为了防止一些爱玩的用户不按顺序去填写选项,而是跳跃的乱填的话,这就提出了在向数据库中插入的时候,去掉空值的问题,因为不肯能在页面中列出了20个textbox就要像数据库中插入20个选项,包括其中的空值项,如此一来会产生一些不必要的麻烦,作为一个菜鸟,我在插入选项内容到数据库时,产生了去掉不定位置的空值时,采用的的方法是数组,本想采用一种方式直接在数组中删除元素,搜了一下很多大师说,在数组中直接删除元素是无法实现的,可以采用泛型,可是我还不会呢,于是自己想了用数组和字符串操作结合的方法,记录下来,以供以后会用到,先不谈实现起来的效率如何,我这个小菜鸟姑且先满足于将其实现了~

如图:这么多textbox的选项不肯能填满,更不可能全部插入到数据库中,所有,将其的空值要去掉。

我采用的方法是,先将这些textbox的内容存到一个数组中————(以四个为例!)

 string[] a = new string[] { TextBox1.Text.Trim(), TextBox2.Text.Trim(), TextBox3.Text.Trim(), TextBox4.Text.Trim() };

然后,判断这个数字元素是否为空,若不为空,则将其内容添加到一个字符串中去,并用“—”符号隔开,以方便下面的分割使用:

  for (int i = 0; i < a.Length-1; i++)//先去掉最后一个textbox的内容进行遍历
        {
            if (a[i].Trim() != "")
            {
                 al += (a[i]+"-"); //现将不存在的空值去掉,然非空值使用分隔符连接成一个字符串
              
            }
        }
        if (a[a.Length - 1].ToString() != "")//此时考虑最后一个textbox的内容
        {
            all = al + a[a.Length - 1];//若不为空,则加上最后一个元素
        }
        else
        {
            all = al.Remove(al.Length-1);//若最后一个textbox的内容为空,则删除上面已添加的最后一个字符‘-’,此字符多余,一旦保留,就会多一个空元素
        }
     
       string [] b=all.Split('-');//以“-”字符对字符串进行分割,返回到字符数组中,于是得到了去除空值之后的新数组。

为了方便调用,将去除空值写成了一个带返回值名为filter2的方法,代码及使用如下:

 protected string[] filter2(string[] a)//使用字符串的操作
    {
        string al="";
        string all = "";

        for (int i = 0; i < a.Length-1; i++)
        {
            if (a[i].Trim() != "")
            {
                 al += (a[i]+"-"); //现将不存在的空值去掉,然非空值使用分隔符连接成一个字符串
              
            }
        }
        if (a[a.Length - 1].ToString() != "")
        {
            all = al + a[a.Length - 1];//加上最后一个元素
        }
        else
        {
            all = al.Remove(al.Length-1);//删除最后一个字符‘-’
        }
     
       string [] b=all.Split('-');
       return b;
    }

使用如下:

 protected void Button2_Click(object sender, EventArgs e)
    {
        string[] a = new string[] { TextBox1.Text.Trim(), TextBox2.Text.Trim(), TextBox3.Text.Trim(), TextBox4.Text.Trim() };
        if (TextBox1.Text.Trim() == ""&&TextBox2.Text.Trim() == ""&&TextBox3.Text.Trim() == ""&&TextBox4.Text.Trim() == ""&&))
        {
           Response .Write ("请至少输入一个选项!");
        }
        else{
       
         for (int i = 0; i < filter2(a).Length; i++)
        {
            Response.Write("第"+(i+1)+"个元素:"+filter2(a)[i].ToString() + "<br>");
        }     
        }
       }

posted on 2010-11-07 17:16  lovechenxiao  阅读(218)  评论(0)    收藏  举报