2017-08-21 3 views
-2

J'essaie d'obtenir le nom des tables dans la base de données, la connexion est réussie mais la requête de sélection me donne (System.Data.SqlClient.SqlCommand) dans le résultat. en dessous de mon code.Obtenir le nom des tables dans l'application Console

SqlCommand cmd = new SqlCommand("select TABLE_NAME from DBNAME.TABLES"); 
Console.WriteLine(cmd); 
string SelectQuery = "SELECT * FROM dbo.DBNAME"; 
SqlCommand a = new SqlCommand(SelectQuery); 
Console.WriteLine(a); 

de joindre la sortie. enter image description here

Répondre

2

tout d'abord vous devez spécifier la chaîne de connexion

SqlCommand cmd = new SqlCommand("select TABLE_NAME from DBNAME.TABLES", connection_string); 

alors vous devez exécuter le command->

using (SqlDataReader reader = cmd.ExecuteReader()) 
{ 
    while (reader.Read()) 
    { 
     Console.WriteLine(reader[0]); 
    } 
} 
+0

la sortie terminée alors que je suis en train (Console.ReadLine();) ne montre pas tables Le nom – Tuta

+0

s'il vous plaît tester votre connexion comme ceci -> https: //dba.stackexchange .com/a/135852 – N1gthm4r3

2

Vous tentez d'imprimer le nom qualifié complet de la classe SqlCommand à l'aide de Console.WriteLine(a);. Lorsque vous tentez d'imprimer un objet de n'importe quelle classe, l'impression du nom qualifié complet de la classe que vous avez référencée sera générée.

Vous devez remplir le résultat de SqlCommand en DataTable utilisant SqlDataAdapter comme ci-dessous:

SqlConnection con = new SqlConnection(connectionString); 
con.Open(); 
SqlCommand cmd = new SqlCommand("select TABLE_NAME from DBNAME.TABLES", con); 
SqlDataAdapter da = new SqlDataAdapter(cmd); 
DataTable dtTables = new DataTable(); 
da.Fill(dtTables); 
for (int i = 0; i <= dtTables.Rows.Count - 1; i++) 
{ 
    Console.WriteLine(dtTables.Rows[i][0]); 
} 
Console.ReadLine(); 
1

Lorsque vous faites Console.Wr iteLine (a) il affichera le nom de la classe, il n'exécutera pas la requête SqlCommand. Vous devez exécuter et stocker les données. Ensuite, vous pouvez imprimer le tables_name

using (SqlDataReader reader = a.ExecuteReader()) 
{ 
    while (reader.Read()) 
    { 
     Console.WriteLine(reader[0]); 
    } 
} 
+0

la sortie s'est terminée pendant que je mets (Console.ReadLine();) n'affiche pas le nom des tables – Tuta