-1

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

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

因此,在此示例中,我需要使用 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 是什么,所以我可以放置这些值在相应的文本框中。

4

1 回答 1

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();
于 2013-07-08T16:31:53.110 回答