如何将查询结果转换为字符串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>
我将返回存储过程的结果,因为我将只允许用户执行存储过程,并且他们将没有任何表权限
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