2012-09-07 52 views
1

我想弄清楚如何最好地组织一个内联的C#页面,使得一些数据库连接和值传递给字符串,并需要一些建议。从字符串数量输出HTML

因此,基本上,我的工作场所使用的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>" 

有没有一种更聪明的办法,我以关闭部分,因为每个程序段通常有一个表参与或追加到一个更大的表,我只是试图看看人们会建议什么是最佳做法。

请注意我真的不是一个程序员,只是沾我的脚趾,如果这是一个学校的男孩错误道歉。

+0

你的问题不清楚给我 – codingbiz

回答

0

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

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

StringBuilders通常用于从循环内向字符串添加文本。 (我读过,使用StringBuilder的,一旦你有超过10串连鼓励)

既然你只有将文本追加到您的字符串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()); 
0

我建议你尝试,使这个问题更清楚,但是如果我理解正确的话,我认为它很可能是最好的创建运行其他的存储过程r存储过程并将结果存储在临时表中,例如

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

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

SELECT CONCAT(MyTable1.emp_name, MyTable2.emp_middlename, MyTable3.emp_lastname) AS Result