2012-09-07 49 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