en relation avec cette Question sur la façon d'écrire de longues requêtes SQL au sein de C #., La solution a suggéré qu'une requête longue SQL doit être écrite comme suit: qui me rend curieux d'une autre question connexe. Puis-je utiliser une substitution en quelque sorte? C'est-à-dire comment irai-je gérer si le nom de la table change, mais la requête reste la même? Dois-je revenir à l'utilisation de l'autre approche de la construction d'une chaîne à l'aide de concaténations à cordes ou existe-t-il un moyen plus élégant? p> p>
3 Réponses :
Pourquoi ne pas utiliser String.Format? Dans l'exemple spécifique que vous avez donné, vous pouvez faire quelque chose comme et l'invocation p>
C'est une bonne réponse et une idée.
Oui, vous pouvez utiliser la méthode String.Format.
string custtype = "CT_CUSTOMER_TYPE";
string cust = "CUSTOMER";
string query = @"
SELECT
c.CUSTOMER_ID,
COALESCE (c.FIRST_NAME, ''_ + ' ' + COALESCE (c.LAST_NAME, '') AS FULL_NAME
ct.NAME as CUSTOMER_TYPE
FROM
{0} AS ct INNER JOIN {1} AS c
ON ct.CUSTOMER_TYPE_ID = c.CUSTOMER_TYPE_ID
";
string endQuery = String.Format(query, custtype, cust);
Vous pouvez envisager d'utiliser Linq vers SQL, si vous ne l'avez pas déjà fait.
Répondant à la question réelle, vous pouvez utiliser string.format code> car les autres ont mentionné si vous créez le mettre en doute. Si vous souhaitez modifier une chaîne existante, essayez d'utiliser string.replace code> ou regex.replace code> comme décrit ici . C'est-à-dire: p>