我一直在互联网上寻找相当长的一段时间,但我找不到一种获取列名列表的方法。我不关心每列的数据。
我想获取该列表并将其与集合进行比较。我正在使用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项,你就会超出界限。
答案 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
会为您提供列名称。它还将包含有关该列的其他内容。您必须对其进行排序,但表中的所有列名都将在那里。