2015-05-16 3 views
0

Я довольно давно смотрю по Интернету, но не могу найти способ получить список имен только столбцов. Меня не интересуют данные, содержащиеся в каждом столбце.Получите только список имен столбцов

Я хочу взять этот список и сравнить его с коллекцией. Я использую MySqlConnector VB.NET. Я новичок в использовании разъема.

Edit:

Dim mscCMD As MySqlCommand = New MySqlCommand("SHOW COLUMNS FROM OCN.cpu", msc) 
      Dim sqlReader As MySqlDataReader = mscCMD.ExecuteReader() 
      Dim b As Integer = 0 
      Dim c As Integer = 0 
      While sqlReader.Read 
       msProjects(c) = sqlReader.**Item**(b) 
       b += 1 
       c += 1 
      End While 

Ничего, я понял это. Мне пришлось выбирать Item, а не getName.

Редактировать: Возможно, я еще не был. Он читает одну строку. Я не уверен, как перейти к следующей строке. Например,

mysql> SHOW COLUMNS FROM City; 
+------------+----------+------+-----+---------+----------------+ 
| Field  | Type  | Null | Key | Default | Extra   | 
+------------+----------+------+-----+---------+----------------+ 
**Id   | int(11) | NO | PRI | NULL | auto_increment** 
| Name  | char(35) | NO |  |   |    | 
| Country | char(3) | NO | UNI |   |    | 
| District | char(20) | YES | MUL |   |    | 
| Population | int(11) | NO |  | 0  |    | 
+------------+----------+------+-----+---------+----------------+ 
5 rows in set (0.00 sec) 

Это строка, которую она читает. Как только вы проходите мимо 5-го предмета, вы находитесь вне пределов.

+0

Я не уверен, что я следую. Я только опытен с VB. Все, что я сделал до сих пор, в SQL, было просмотром учебников. –

+0

Значит, вам просто нужен правильный оператор SQL? – BSMP

+0

Да, это поможет. Однако мне также понадобится помощь с разъемом. Заявление будет выводить результат, поэтому мне нужно знать, как правильно преобразовать этот вывод в коллекцию. Прямо сейчас я знаю, как выполнять не запросы. –

ответ

1

Вы можете использовать метаданные из результирующего набора:

  final ResultSet rs = statement.executeQuery("SELECT * FROM `" + tableName +"` LIMIT 0,1;"); 
     final ResultSetMetaData metaData = rs.getMetaData(); 
     for(int i=1; i<metaData.getColumnCount(); i++) 
     { 
      System.out.println("" + metaData.getColumnName(i)); 
     } 

Кроме того, вы можете получить столбец java.sql.Types введите тот же путь.

+0

Я не использую Java. Я использую VB. –

+0

Извините, я неправильно понял. –

0

Got it. Нашел ответ из статьи MS KB.

https://support.microsoft.com/en-us/kb/310108

For Each myField In schemaTable.Rows 
    'For each property of the field... 
    For Each myProperty In schemaTable.Columns 
     'Display the field name and value. 
     Console.WriteLine(myProperty.ColumnName & " = " & myField(myProperty).ToString()) 
    Next 
    Console.WriteLine() 

    'Pause. 
    Console.ReadLine() 
Next 

myField(myProperty).ToString В частности будет вам имена столбцов. Он также будет содержать другие сведения о столбце. Вам придется отсортировать его, но все имена столбцов из вашей таблицы будут там.

Смежные вопросы