我需要使用C#System.Data.SqlClient
dll來查詢SQL數據庫。我知道我通常可以使用SQL查詢語句來查詢數據庫,如SELECT * FROM TABLE_NAME
。但是,我不知道任何表,列或行的名稱,所以我不知道如何正確獲取我需要的信息。如何獲取每個表的所有表名和所有列名和行名?
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
我另一種答案我看到了SO後嘗試下面的代碼了。
此外,如果你想知道爲什麼Debug.Log
的東西,這是因爲我使用Unity3D,但這個問題與Unity無關,所以我沒有打擾爲它添加標籤。
任何幫助,非常感謝。
row.ToString()會寫成DataRow;你需要嘗試索引它來得到一個單元格的值,比如行[col.ToString()]或者獲取索引器並且獲得索引器的數目 – techspider
@techspider有道理,但爲什麼'col.ToString()'會打印一些東西呢? – bpgeck
hmm ....放置一個斷點並通過col.ToString()來查看它正在嘗試寫入的屬性;看起來你寫代碼時不知道它幹了什麼! – techspider