在单个文本框中解析数字以进行查询

时间:2010-04-15 19:34:48

标签: c# asp.net

我在Visual Web Developer Express 2008中构建了一个webform来帮助我完成工作。我使用webform来运行通过电子邮件发送给我的查询请求。输入采用这种格式

12312 12312

12312 12312

12312 12312

12312 12312

我在文本框中输入第一个数字,在另一个文本框中输入第二个数字,然后单击运行查询的按钮并在gridview(单行)中返回结果。

string strConn, strSQL;
            strConn = AppConfig.Connection
strSQL = 'select fields from table where FirstNum=:FirstNum and      SecondNum=:SecondNum';

            using (OracleConnection cn = new OracleConnection(strConn))
            {
                OracleCommand cmd = new OracleCommand(strSQL, cn);
                cmd.Parameters.AddWithValue(":FirstNum", txtFirstNum.Text);
                cmd.Parameters.AddWithValue(":SecondNum",
txtSecondNum.Text);
                cn.Open();

                using (OracleDataReader rdr = cmd.ExecuteReader())
                {
                    dgResults.DataSource = rdr;
                    dgResults.DataBind();
                }
                cn.Close();
            }

我有一个想法可以帮助我加快工作进度。我希望能够在单个文本框中删除这两个数字

(如12312 12312)

并让代码解析查询的nubmers。或者更好的是在像这样的多行文本框中过去所有这些

12312 12312

12312 12312

12312 12312

12312 12312

让它们全部解析,并为每一行运行查询,结果全部输出到一个gridview。我只是不确定如何处理这个问题。任何建议将不胜感激。

谢谢。

1 个答案:

答案 0 :(得分:1)

也许是这样的:

string[] lines = textBox.Text.Split( '\n' );
foreach( var line in lines )
{
    var values = line.Split( ' ' );
    var num1 = int.Parse( values[0] );
    var num2 = int.Parse( values[1] );
    // do what you need to with num1, num2
}

您将要为上面的代码添加更多错误处理逻辑和弹性 - 特别是如果输入来自人类。