2017-08-21 42 views
-2

我试图在数据库中获取表名,连接成功,但选择查询给我(System.Data.SqlClient.SqlCommand)在结果中。在我的代码下面。在控制台应用程序中获取表名

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); 

附加输出。 enter image description here

回答

2

,首先你必须指定连接字符串

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

,那么你必须执行命令 - >

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

,而我把输出端(到Console.ReadLine();)不显示表名 – Tuta

+0

请测试连接这样的 - > HTTPS://dba.stackexchange .com/a/135852 – N1gthm4r3

2

您试图使用Console.WriteLine(a);打印SqlCommand类的全限定名。当您尝试打印任何课程的对象时,将导致您所引用的课程的全限定名称被打印。

您有如下使用SqlDataAdapter填写结果为SqlCommandDataTable

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

当您执行Console.Wr iteLine(a)它将打印出类名,它不运行SqlCommand查询。您需要执行并存储数据。然后,你可以打印出tables_name

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

输出终止时,我把(Console.ReadLine();)不显示表名 – Tuta

相关问题