首页 > 解决方案 > 从数据表列中提取

问题描述

谁能帮我这个?

我有一个从数据库填充的数据表“dt”。我的 dt 有几列需要子字符串。我想在特定字符(=)之后砍掉字符。并将其推回我的 dt。

我一直在尝试不同的东西,但没有任何效果。我确定我错过了一些东西。

private DataTable MyTableWhenExport(DataTable dt) {
    if (dt != null && dt.Rows.Count > 0) {
        (dt.Columns["MyColumn"]) = dt["yMyColumn"]
            .Substring(0, dt["MyColumn"].LastIndexOf("=") + 1); // My substring code here
    }
    return dt;
} 

有人可以帮我吗?

标签: c#linqdatatablesubstring

解决方案


您可以使用

string firstPart = theString.Split('=')[0];

检索之前的部分=。如果字符串不包含等号,则返回整个字符串。

如果字符串可以null,请使用

string firstPart = theString?.Split('=')[0];

您必须访问DataTable. dt.Columns仅包含列定义(如标题),而不包含实际的单元格值。

DataRow row = dt.Rows[0];
string oldValue = (string)row["MyColumn"];  // Returns an object. Therefore cast to string.
row["MyColumn"] = oldValue?.Split('=')[0];

推荐阅读