日期:2014-05-18  浏览次数:21002 次

关于文本框的将内容分离的问题!在线等!解决立刻给分!
我现在用CS做一个题库的系统,现在有两个表一个是:题目表。一个是答案表。
我现在用了一个题目文本框textBox1和一个答案文本框textBox2。
现在我的目的是将:textBox1里的内容插入到数据库中的‘题目表’里,将textBox2中的内容插入到答案表里。
textBox1里的内容插入到数据库中的‘题目表’里这个没有问题。但是在textBox2中我将A、B、C、D答案都粘贴到了这个文本框中,我现在想将答案A作为一条记录插入到‘答案表’里,然后答案B作为一条记录插入到‘答案表’里,然后答案C作为一条记录插入到‘答案表’里,最后答案D作为一条记录插入到‘答案表’里,一共是4条记录。
例如说:在textBox2.text中的内容是:A、安全阀 B、爆破片 C、压力表 D、温度计
我现在点击‘保存’按钮时,如果能分离出答案A,答案B、答案C、答案D。分别用insert into 答案表 values('A、安全阀').insert into 答案表 values('B、爆破片').
现在我就是在textBox2这个文本框中分离不出这四个答案来,请问在保存按钮中怎么进行语句的判断,将4个答案分别隔离出来!谢谢!

------解决方案--------------------
其实建议楼主在每个答案的后面加个符号标识。如:
A、安全阀;B、爆破片;C、压力表;D、温度计 
这样的话就可以根据分号来取值了。又方便。
C# code

string str = "";
string[] myAsk = null;
myAsk = textbox2.Split(new char[] { ';' });
for (int i = 0; i < myAsk .Length; i++)
{
    这里做SQL语句了。
}

------解决方案--------------------
C# code
using System;
using System.Text.RegularExpressions;

class Test
{
  static void Main()
  {
    string s1 = "A、安全阀           B、爆破片           C、压力表           D、温度计";
    Match m = Regex.Match(s1, @"A、(?<a>.*?)\s*B、(?<b>.*?)\s*C、(?<c>.*?)\s*D、(?<d>.*)");
    if (m.Success)
    {
      Console.WriteLine("A: [{0}]", m.Groups["a"].Value);
      Console.WriteLine("B: [{0}]", m.Groups["b"].Value);
      Console.WriteLine("C: [{0}]", m.Groups["c"].Value);
      Console.WriteLine("D: [{0}]", m.Groups["d"].Value);
    }
  }
}

------解决方案--------------------
考虑到答案中可能会出现空格,字母等等。所以用字符串自带的分离函数可能不太合适。
用正则表达式吧.
另外,在textBox2中你可以将输入用回车分开,那用分离函数就好了。