2017-10-15 102 views
0

問題確實如此,我只想從表中找到所有列名稱,我正在尋找儘可能基本的方法。如何從SQL數據庫返回列名稱

+2

您可以查詢數據庫模式的建議[這裏](https://stackoverflow.com/questions/1054984/how-can-i-get-column-names-from-a -table-in-sql-server) – rango

+5

[我如何從SQL Server的表中獲取列名?](https://stackoverflow.com/questions/1054984/how-can-i-get-column -sql-server -name-from-a-table-in-sql-server) –

+0

鏈接中的16個鏈接都不是OP最可能想要的內容(請參閱pim的答案),所以我不認爲它是重複的。 –

回答

2

如果您運行以下SQL,您將得到一個空的行集。您可以通過使用SqlCommandDataReader來解釋列名稱。

using (var conn = new SqlConnection("your_conn_string")) 
{ 
    var command = new SqlCommand("select * from [dbo].[tableName] where 1 = 2"); 
    conn.Open(); 

    using(var dr = command.ExecuteReader()) 
    { 
     var columns = new List<string>(); 

     for(int i=0;i<reader.FieldCount;i++) 
     { 
      columns.Add(reader.GetName(i)); 
     } 
    } 
} 
0

這完全取決於數據庫。幾乎所有的數據庫都有一些關於數據庫的元數據。大多數實現information_schema方法的某些版本。

例如,常見的方式,以獲取有關列的信息是:

select column_name 
from information_schema.columns 
where table_name = ? and table_schema = ?; 

?是佔位符的表名和模式。

+1

他在問如何使用C# – OctoCode

0

這應該做你想做的。

public string[] getColumnsName() 
{ 
    List<string> listacolumnas=new List<string>(); 
    using (SqlConnection connection = new SqlConnection(Connection)) 
     using (SqlCommand command = connection.CreateCommand()) 
     { 
      command.CommandText = "select c.name from sys.columns c inner join sys.tables t on t.object_id = c.object_id and t.name = 'Usuarios' and t.type = 'U'"; 
      connection.Open(); 
      using (var reader = command.ExecuteReader()) 
      { 
       while (reader.Read()) 
       { 
        listacolumnas.Add(reader.GetString(0)); 
       } 
      } 
     } 
    return listacolumnas.ToArray(); 
} 

Get column name from SQL Server

相關問題