如何使用字符串ASP.NET C#评估数据集

时间:2014-07-23 20:45:15

标签: c# asp.net sql string dataset

我希望能够使用字符串评估数据集。在SQL语句中,我将使用数据集提取数据,如果数据集与字符串匹配,我想做一些事情。我无法弄清楚这样做的语法。

这是我的代码:

var sql = new SQL_Statements();
var stringSql = "select type from po where po_num=" + stringPO_NUM;
const string stringLumber = "Lumber";

var sql_ds = sql.SelectFromDB(stringSql);

if (sql_ds.Tables[0].Rows.ToString() == stringLumber)
{
   //Lets do something.
}

数据集从表中提取单词Lumber。请问有什么可以告诉我怎么做?

3 个答案:

答案 0 :(得分:1)

您正在ToString上调用DataRowCollection而不是返回的单元格值。

由于您的查询只返回行中的一个单元格,您可以通过直接索引DataRow来访问第一个单元格:

if (sql_ds.Tables[0].Rows[0][0].ToString() == stringLumber)

Rows[0][0]中,第一个0是行索引,第二个是列索引。

答案 1 :(得分:0)

试试这个。这将迭代每一行以查看它是否与您的字符串匹配,然后如果该行执行某些操作。因此,您可能需要更多代码才能完成它。

foreach (DataTable table in sql_ds.Tables)
{
    foreach (DataRow row in table.Rows)
    {
        if (row.Field["ROW_NAME"].ToString() == stringLumber)
            {
                //Lets do something.
            }
    }
}

答案 2 :(得分:0)

现在的问题是你在行上调用.ToString。这可能会返回行的数据类型,这对您没有好处。

您需要选择特定行,然后选择行内的特定列值。如果只返回一行,您可以尝试:

sql_ds.Tables[0].Rows[0][0].ToString() == stringLumber

这将获得集合中的第一行,然后是第一列。您提到结果中可能有空格,因此您可以添加.Trim()(如果需要)以删除字符串的开头或结尾处的空格。