2017-08-21 45 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

相關問題