如何将查询结果转换为字符串c#

本文关键字:字符串 转换 结果 查询 | 更新日期: 2023-09-27 18:00:11

我将HTML存储在varchar(max)字段中。在数据集中可能会返回许多这样的字段。我需要将它们基本上连接到一个字符串中,以便将它们添加到我的控件中。有什么想法吗?

例如

result 1: <h5> This is a result  </h5>
result 2: <h5> This is a result  </h5>
result 3: <h5> This is a result  </h5>
result 4: <h5> This is a result  </h5>

我需要将结果集解析为如下字符串:

<h5> This is a result  </h5>
<h5> This is a result  </h5>
<h5> This is a result  </h5>
<h5> This is a result  </h5>

我将返回存储过程的结果,因为我将只允许用户执行存储过程,并且他们将没有任何表权限

如何将查询结果转换为字符串c#

string results = someStoredProcCall();
results = Regex.Replace(results, @"result [0-9]+: ", "");

如果我正确理解问题,您的HTML将在数据库中,并且需要在控件中呈现?如果是,我将设置一个文本控件,在加载数据时,设置文本的属性以呈现存储的HTML结果。

StringBuilder sb = new StringBuilder();
for(int i = 0; i < dsResults.Tables[0].Rows.Count - 1; i++)
{
    sb.Append(PrepareResult(dsResults.Tables[0].Rows[i][0].ToString()));
}
litControl.Text = sb.ToString();

public string PrepareResult(string result)
{
    return result.Substring(result.IndexOf("<"));
}

这是免费的代码,所以你可能需要稍微调整一下,我认为这个概念很清楚。HTH

您可以使用LINQ:

string[] results = ...
string resultsStr = results.Aggregate((a,b) => a + b);

或者。。。

MyEntity[] results = ...
string resultsStr = results.Select(r => r.SomeColumn).Aggregate((a,b) => a + b);

在SQL存储过程中,您可以执行以下

DECLARE @PartHTML VARCHAR(MAX)
DECLARE @FullHTML VARCHAR(MAX)
DECLARE CURSOR HTMLCursor FOR (SELECT FieldWithHTML FROM TableWithHTML)
OPEN CURSOR HTMLCursor
FETCH NEXT FROM HTMLCursor INTO @PartHTML
While (@@FETCH_STATUS <> -1)
BEGIN
    SET @FullHTML = @FullHTML + @PartHTML + CHAR(13)
    FETCH NEXT FROM HTMLCursor INTO @PartHTML
END
CLOSE HTMLCursor
DEALLOCATE HTMLCursor