C#:使用第二列作为条件从数据集中的列中选择值

时间:2013-07-08 16:27:16

标签: c# select dataset

我有一个数据集从我的数据库中拉出2列。 我需要根据“A列”同一行中的值,从我的数据库“Column B”中的第二列中选择一个值

'Column A'  'Column B'
   1111       aaaa
   1212       bbbb
   1313       caca
    etc        etc

所以在这个例子中,我需要使用Column A值1212选择B列中的值,从而选择我可以存储在字符串中的bbbb。对于表中的变化值,我需要多次这样做。

到目前为止,这是我正在使用的内容:

sSql.Remove(0, sSql.Length);
        sSql.Append("SELECT NAME_, VALUE_TEXT");
        sSql.Append(" FROM PARAMETERS_");
        sSql.Append(" WHERE PARAMETERS_.NAME_ = 'Captions.User_TxtBox1'");
        System.Data.OleDb.OleDbConnection conn = new System.Data.OleDb.OleDbConnection(((DataDynamics.ActiveReports.DataSources.OleDBDataSource) rpt.DataSource).ConnectionString.ToString());
        System.Data.OleDb.OleDbCommand selectCmd = new System.Data.OleDb.OleDbCommand(sSql.ToString(), conn);
        da.SelectCommand = selectCmd;
        da.Fill(ds);

    txtUser.Text = ds.Tables[0].Rows[0]["VALUE_TEXT"].ToString();

这样可行,但仅限一条记录。我希望能够在我的SQL语句中删除我的WHERE子句,并从整个表中选择我要查找的特定记录。我正在抓取一系列条目,其中PARAMETERS_.NAME_的值将等于Captions.Tool1,Captions.Tool2等,我将需要知道这些行的VALUE_TEXT是什么,所以我可以放置这些值在相应的文本框中。

1 个答案:

答案 0 :(得分:2)

您可以使用LINQ to DataSet。按列A 值过滤行,从过滤行中选择 B列,并(可选)获取第一个结果:

var result = table.AsEnumerable()
                  .Where(r => r.Field<int>("Column A") == 1212)
                  .Select(r => r.Field<string>("Column B"))
                  .FirstOrDefault();