1

我试图弄清楚如何最好地组织一个内联 c# 页面,该页面建立多个数据库连接并将值传递给字符串并需要一些建议。

所以基本上我的工作场所使用的 CMS 只允许内联代码,所以我正在做一个课程搜索页面,它连接到一些存储过程并将值传递给字符串。

处理将不同位信息输出到字符串的三个不同存储过程调用的最佳方法是什么?在旧的 VB 版本中,我将信息传递给字符串,然后将它们作为一个大字符串输出,这可能不是处理这个问题的最佳方法。

代码目前采用这种粗略的格式

Stored Procedure 1
Pass x values to string
string = "<p> + xString +</p>"

Stored Procedure 2
Pass y values to string
string = "<p> + yString +</p>"

有没有更聪明的方法来关闭部分,因为每个过程部分通常都涉及一个表或附加到一个更大的表,我只是想看看人们会建议什么是最佳实践。

请注意,我真的不是一个程序员,如果这是一个男生的错误,我只是伸手道歉。

4

2 回答 2

0

有多种连接字符串的方法:

你可以使用一个StringBuilder. 这种类型允许您追加和插入文本,然后使用该ToString()方法输出所有文本。

StringBuilders通常在从循环中向字符串添加文本时使用。(我已经读过,一旦你有超过 10 个连接,就鼓励使用 StringBuilder)

由于您只需将文本附加到字符串 3 次,您就可以使用: String.ConcatyourString += string.Format("<p>{0}</p>", stringToBeAdded);

在您的情况下,文本可能彼此不相关,在这种情况下,还有其他可用选项:

// Using an array (fixed size)
string[3] yourStrings;
yourStrings[0] = "first string";
yourStrings[2] = "last string";

// Using a list (dynamic sized)
var yourStrings = new List<string>();
yourStrings.Add(storedProcResult.ToString());
于 2012-09-07T10:29:37.893 回答
0

我建议您尝试使问题更清楚,但是如果我理解正确,我认为最好创建一个存储过程来运行其他存储过程并将结果存储在临时表中,例如

INSERT INTO #MyTable1 EXEC procedure1 @param
INSERT INTO #MyTable2 EXEC procedure2 @param
INSERT INTO #MyTable3 EXEC procedure3 @param

然后在同一个存储过程中运行一个简单的选择语句,根据需要连接字符串并将它们返回到您的内联代码,例如

SELECT CONCAT( MyTable1.emp_name, MyTable2.emp_middlename, MyTable3.emp_lastname ) AS Result
于 2012-09-07T10:52:32.673 回答