U kunt de tabelnaam niet als parameter doorgeven. U moet hiervoor dynamische SQL gebruiken, dus u moet concentratie gebruiken om dit te doen, bijvoorbeeld
MySqlCommand cmd = new MySqlCommand(String.Format("select * from {0}",tableName), cn)
Maar omdat gebruikers de tableName invoeren, is SQL-injectie mogelijk. U kunt deze SQL gebruiken om te bepalen of die tabel bestaat voordat u er iets van opvraagt:
SELECT table_name
FROM information_schema.tables
WHERE table_schema = 'databasename'
AND table_name = 'tablename';
(U kunt deze query perfect parametriseren, zodat SQL-injectie wordt geëlimineerd)
Wees in het algemeen voorzichtig met SQL-injectie. Maar als u dit intern gebruikt (niet bloot aan de gebruiker), dan zou SQL-injectie geen probleem moeten zijn.
Beter, je kunt een opgeslagen procedure maken om hiermee om te gaan, zoals in mijn andere antwoord: