2009-04-04 7 views
0

J'essaie d'accepter dynamiquement un nom de table en fonction des conditions satisfaites, le nom de la colonne est également sélectionné dynamiquement, tout comme la valeur de comparaison, mais je reçois une erreur lors de l'exécution. J'écris ce code en C# et mon backend est SQL Server 2005. S'il vous plaît aidez-moi.Prendre dynamiquement un nom de table sous forme aspx à l'aide du serveur SQL

Voici le code:


    if(table=="studenttab") 

        table = "personal_detail"; 

       thisconnection1.Open(); 

       string p = field[0].ToString().ToLower(); 

       string q = code[0].ToString(); 

      SqlCommand thiscommand3 = thisconnection1.CreateCommand(); 

      thiscommand3.CommandText = " Select * from '" + table + "' where '" + p + "' = '" + q + "' "; 

      // here it gives error "Incorrect syntax near 'personal_detail'." Dont understand! 

      SqlDataReader thisreader3 = thiscommand3.ExecuteReader(); 

Répondre

2

Pour répondre à votre question spécifique, je suppose que l'erreur est due au fait que vous entourez votre nom de table et les noms de colonnes avec des guillemets simples. vos noms d'objets ne doivent pas être entourés de citations d'aucune sorte.

En guise de remarque, veuillez vous pencher sur les problèmes liés aux attaques par injection SQL. Le genre de concaténation SQL que vous faites ici est largement considéré comme un énorme risque de sécurité.

0

Votre code manque plusieurs accolades de fermeture, un devis de clôture, et il semble avoir indentation induire en erreur.

Questions connexes