2017-08-21 2 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を使用してDataTableSqlCommandために、結果を記入する必要があります:すべての

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

関連する問題