1

多数のDB接続を作成し、値を文字列に渡すインラインc#ページを整理するための最善の方法を見つけようとしていますが、アドバイスが必要です。

つまり、基本的に私の職場で使用されているCMSはインラインコードしか許可しないので、いくつかのストアドプロシージャに接続し、値を文字列に渡すコース検索ページを実行しています。

異なるビットの情報を文字列に出力する3つの異なるストアドプロシージャ呼び出しを処理するための最良の方法は何でしょうか。古いVBバージョンでは、情報を文字列に渡してから、それらを1つの大きな文字列として出力していましたが、これはおそらくこれを処理するための最良の方法ではありません。

コードは現在、この大まかな形式になっています

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

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

各プロシージャセクションには通常、1つの大きなテーブルが含まれるか、1つの大きなテーブルに追加されるため、セクションを閉じるためのよりスマートな方法はありますか。私は、人々がベストプラクティスを提案することを確認しようとしています。

私は実際にはプログラマーではなく、ただつま先を浸しているだけなので、これが男子生徒の間違いである場合はお詫びします。

4

2 に答える 2

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
于 2012-09-07T10:52:32.673 に答える
0

文字列を連結する方法はいくつかあります。

を使用できますStringBuilder。このタイプを使用すると、テキストを追加して挿入し、メソッドを使用してすべてのテキストを出力できますToString()

StringBuilders通常、ループ内から文字列にテキストを追加するときに使用されます。(連結が10を超えると、 StringBuilder の使用が推奨されることを読みました)

String.Concat文字列にテキストを追加する必要があるのは 3 回だけなので、次を使用できます。 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());
于 2012-09-07T10:29:37.893 に答える