私はC#System.Data.SqlClient
dllを使用してSQLデータベースを照会する必要があります。私は通常、SELECT * FROM TABLE_NAME
のようなSQLクエリ文を使用してデータベースをクエリできます。しかし、テーブル、カラム、またはローの名前はわかりませんので、必要な情報を正しく取得する方法がわかりません。すべてのテーブル名と各テーブルのすべての列名と行名を取得する方法は?
私はSOに見た別の答えの後に、すでに以下のコードを試してみました:
public void PrintNames() // print table, column, and row names
{
SqlConnection connection = new SqlConnection(connectionString);
using (connection)
{
connection.Open();
DataTable table = connection.GetSchema("Tables");
Debug.Log(table.Columns.Count);
Debug.Log(table.Rows.Count);
foreach (DataColumn col in table.Columns)
{
foreach (DataRow row in table.Rows)
{
Debug.Log(col.ToString() + ", " + row.ToString());
}
}
}
}
これはちょうど、次の印刷に結果:TABLE_CATALOG, System.Data.DataRow
何度も繰り返し。
また、Debug.Log
というものがなぜ私はUnity3Dを使用しているのだろうと思っていますが、この問題はUnityとは何の関係もないので、タグを追加する必要はありません。
ご協力いただきありがとうございます。
row.ToString()はDataRowとして書き込みます。 row [col.ToString()]のようなセルの値を取得するためにインデックスを作成する必要があります。 – techspider
@techspiderは理にかなっていますが、なぜ 'col.ToString()'が何かを出力しますか? – bpgeck
hmm ....ブレークポイントを設定し、col.ToString()を実行して、書き込みしようとしているプロパティを確認します。あなたはそれが何を理解せずにコードを書いたようです! – techspider