【发布时间】:2014-08-20 18:03:56
【问题描述】:
我需要从表的一列,任何记录中检索 val(所有记录中的 val 在任何给定时间都应该相同;也就是说,如果它是“3”,那么它将是“3”在所有这些中;如果是“17”,则在所有这些中都是“17”(或“42”或其他)。
所以我看到了这样的遗留代码:
DataSet ds = dbconn.getDataSet("SELECT siteNo FROM workTables");
foreach (DataRow row in ds.Tables[0].Rows)
{
siteNum = row["siteNo"].ToString();
}
...这可行,但看起来很笨拙且浪费,因为可以循环通过大量记录,并且只使用最后一个循环的值。
所以我试图用这段代码“切入正题”:
String siteNum = ds.Tables[0].Rows.ToString();
...但出现异常,因为 siteNum 是 System.Data.DataRowCollection
然后我尝试了这个:
String siteNum = ds.Tables[0].Rows[0].ToString();
...但出现异常,因为 siteNum 是 System.Data.DataRow
所以我终于恢复到旧的 kludgy 代码,几乎是这样修改它:
DataSet ds = dbconn.getDataSet("SELECT siteNo FROM workTables");
foreach (DataRow row in ds.Tables[0].Rows)
{
siteNum = row["siteNo"].ToString();
// just need the first one
break;
}
这可行,但我确信它不是“首选方法”。谁知道“更好”的方法?
【问题讨论】:
标签: dataset sql-server-ce row windows-ce windows-embedded-compact