我正在试图弄清楚如何最好地组织一个内联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>"
我是否有一种更聪明的方法可以关闭各个部分,因为每个程序部分通常都有一个表格或附加到一个较大的表格,而我只是想看看人们会建议什么是最佳做法。
请注意我真的不是一个程序员而且只是在我的脚趾上倾诉如此,如果这是学校男生的错误就道歉。
答案 0 :(得分:0)
有许多串联字符串的方法:
您可以使用StringBuilder
。此类型允许您添加和插入文本,然后使用ToString()
方法输出所有文本。
StringBuilders
。 (我已经读过,一旦你有超过10个连接,就会鼓励使用StringBuilder)
由于您只需要将字符串附加到字符串3次,您可以使用:
String.Concat
或yourString += 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());
答案 1 :(得分:0)
我建议您尝试使问题更清楚,但是如果我理解正确,我认为最好创建一个运行其他存储过程的存储过程并将结果存储在临时表中,例如。
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