2010-04-26 2 views

ответ

1

Правильный способ сделать это на SQL Server 2005 и выше (вы не указали совершенно ясно, какую версию вы используете) будет инспектировать системного каталога, которые живут в sys схеме:

SELECT 
    name 
FROM  
    sys.columns 
WHERE 
    object_id = object_id('YourTableNameHere') 
ORDER BY 
    name  

sys.columns вид в каталоге дает вам довольно подробную информацию о столбцах таблицы. Таблица идентифицируется столбцом object_id, который является внутренним идентификатором для данной таблицы.

1

Это должно дать вам список таблиц

SELECT name 
FROM dbo.sysobjects 
WHERE xtype = 'U' 

И это должно дать вам информацию столбца в таблице

select * 
from INFORMATION_SCHEMA.COLUMNS 
where TABLE_NAME = 'yourTable' 
+0

«sysobjects» является устаревшим SQL Server 2005 - начните с помощью «sys.objects» и другие представления каталога в «SYS» схемы –

0

Вот как вы можете запросить имена столбцов из SQL-сервера. Другие базы данных похожи на это. http://blog.sqlauthority.com/2008/08/05/sql-server-2005-get-field-name-and-type-of-database-table/

Насколько получать элементы в выпадающем списке вы можете найти объемы информации об этом на сайте MSDN по этой ссылке http://msdn.microsoft.com/en-us/library/aa983551(VS.71).aspx

Enjoy!

0

Вы можете использовать этот код

string sqlquery="select column_name FROM INFORMATION_SCHEMA.COLUMNS 
WHERE TABLE_NAME = 'student' ORDER BY ORDINAL_POSITION"; 
    DataFind.Open(); 
    cmd = new SqlCommand(sqlquery, DataFind); 

    SqlDataReader DR = cmd.ExecuteReader(); 

     while (DR.Read()) 
    { 
     comboBox1.Items.Add(DR[0]); 

    } 
    DataFind.Close(); 
Смежные вопросы