English 中文(简体)
C#:我如何编辑数据集的内容?
原标题:C#: How do I iterate the contents in a DataColumn?
  • 时间:2009-09-08 23:15:37
  •  标签:

我有一个数据库一栏,仅需要检查是否有价值。

        DataTable dt = masterDataSet.Tables["Settings"];
        DataColumn SETTINGS = dt.Columns["DEFAULTSETTINGS"];

I just need to iterate over the values in this column to see if a value exists. Help

问题回答

页: 1

DataColumn SETTINGS = dt.Columns["DEFAULTSETTINGS"];
foreach(DataRow row in dt.Select())
{
    object columnValue = row[SETTINGS];
    // Do something with columnValue
}

没有必要通过你的数据Rows作为老的ADO,人工使用Linq或精炼。 NET有多种解决办法,例如:DataTable.Select。 DataView.RowFilter


string value = "default"; 
bool found = dt.Select("DEFAULTSETTINGS = " + value).Length > 0;

显然,一旦你获得过滤器,你就可以与他们一道做任何事情。 举例来说,我只是检查一下,看看看是否有任何增长符合标准,但你可以操纵他们如何看待。

您可在www.net3.5中使用linq:


DataColumn col = dt.Columns["DEFAULTSETTINGS"];
object value = //expected value
bool valueExists = dt.AsEnumerable().Any(row => row.Field<object>(col).Equals(value));

EDIT:从你重新试图看到DEFAULTSETlingS一栏是否载有严重违约的意见来看,似乎已经如此。 实地推广方法只是将该栏中标的投放到特定类别中,因此,你可以改变类型参数,而不是使用《标准》。 因此,以你为例,你可能利用这一方法:


DataColumn col = dt.Columns["DEFAULTSETTINGS"];
bool valueExists = dt.AsEnumerable().Any(row => "default".Equals(row.Field<string>(col), StringComparison.OrdinalIgnoreCase);




相关问题
热门标签