Je veux fournir le nom de la table pour une requête en tant que paramètres de commande, comme ceci:Comment puis-je fournir le nom de table pour une requête en tant que paramètre de commande dans Npgsql?
public class Foo
{
private const String myTableName = "mytable";
public void Bar()
{
NpgsqlCommand command = new NpgsqlCommand("SELECT * from :tableName", connection);
command.Parameters.Add(new NpgsqlParameter("tableName", DbType.String));
command.Parameters[0].Value = myTableName;
}
}
Cela semble conduire à cette requête: "SELECT * from E'mytable'"
qui se traduit par une erreur (attention aux guillemets simples). Ai-je vraiment besoin de faire une concaténation de chaînes pour cela? Il n'a pas d'importance du point de vue de la sécurité, puisque le nom de la table ne peut pas être modifiée par la concaténation utilisateur mais chaîne pour la création de requêtes SQL me donne toujours la chair de poule ...
Merci, Eric
Les noms des tables sont toujours des constantes. Merci. – EricSchaefer