我希望能够使用字符串评估数据集。在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。请问有什么可以告诉我怎么做?
答案 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()(如果需要)以删除字符串的开头或结尾处的空格。