通过查找数据集来替换文本

时间:2014-10-22 19:28:01

标签: c# asp.net

我有一些文字可能如下:

string str = "Dear Fred, Yours sincerely [Project Manager]";

或者,它可能看起来像这样:

string str = "Dear Fred, Yours sincerely [Administrator]";

或十个人中的任何一个'签署'特定项目的电子邮件。在我正在处理的页面上,我有一个包含10行的数据集,其中包含两列数据,如:

[Project Manager] .... Fred Smith
[Administrator] ..... Arthur Jones
[Coordinator] .... Belinda Digby

(上面几行中数据之间的点是尝试表示记录集中的表格数据。)

当我在文本框中显示字符串str时,如何“查找”[Project Manager']是谁 - 或数据集中的[Administrator'] - 所以我可以用正确的名称替换占位符?

1 个答案:

答案 0 :(得分:0)

假设DataSet是指具有DataTable和10行的Ado.net DataSet对象,那么这是一种方式:

    DataSet dataSet = new DataSet();
    DataTable dataTable = new DataTable();

    dataTable.TableName = "Managers";
    dataTable.Columns.Add(new DataColumn("Role"));
    dataTable.Columns.Add(new DataColumn("Who"));

    DataRow dataRow = dataTable.NewRow();
    dataRow[0] = "Singer";
    dataRow[1] = "Johnny Cash";
    dataTable.Rows.Add(dataRow);

    dataRow = dataTable.NewRow();
    dataRow[0] = "Banjo guy";
    dataRow[1] = "Cleetus Smith";
    dataTable.Rows.Add(dataRow);

    dataSet.Tables.Add(dataTable);

    String thisGuyIs = "Banjo guy";
    String hisNameIs = "This is our guy: {0}";

    DataRow[] foundRows;

    foundRows = dataSet.Tables["Managers"].Select("Role = '" + thisGuyIs + "'");

    if (foundRows.Count() == 1) {
        hisNameIs = String.Format(hisNameIs, foundRows[0]["Who"].ToString());
    }