仅获取列名列表

时间:2015-05-16 05:41:22

标签: mysql vb.net mysql-connector

我一直在互联网上寻找相当长的一段时间,但我找不到一种获取列名列表的方法。我不关心每列的数据。

我想获取该列表并将其与集合进行比较。我正在使用VB.NET MySqlConnector。我是新手使用连接器。

编辑:

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项,你就会超出界限。

2 个答案:

答案 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列类型。

答案 1 :(得分:0)

知道了。从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会为您提供列名称。它还将包含有关该列的其他内容。您必须对其进行排序,但表中的所有列名都将在那里。