C# 如何从表或结果集获取列名和其他元数据
“数据”表中的EXC# 如何从表或结果集获取列名和其他元数据,c#,mysql,.net,ado.net,C#,Mysql,.net,Ado.net,“数据”表中的EX 从湿度到末端的柱类型为布尔值 我想得到列名有数据是“1”的组合框 具体来说,对于结果集的每一行,我需要一个包含值1的列名集合,这样我就可以填充一个组合框 对不起,我的英语不够好 此查询将帮助您描述my_表 SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = 'my_database' AND TABLE_NAME = 'my_table'; 有关更多说明,请参阅链接:此查询将帮助
- 从湿度到末端的柱类型为布尔值
- 我想得到列名有数据是“1”的组合框
1
的列名集合,这样我就可以填充一个组合框
对不起,我的英语不够好
此查询将帮助您
描述my_表代码>
SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = 'my_database' AND TABLE_NAME = 'my_table';
有关更多说明,请参阅链接:此查询将帮助您描述my_表代码>
SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = 'my_database' AND TABLE_NAME = 'my_table';
有关更多说明,请参阅链接:使用MySQL.net连接器(以及任何RDMS连接器)从查询中读取结果集时,将有一个DataReader对象。在MySQL的例子中,它是一个MySqlDataReader
例如(来自)
拥有有效的DataReader后,可以使用GetSchemaTable()
方法获取描述结果集的DataTable
数据集合。此信息作为结果集的一部分来自MySQL。例如:
MySqlDataReader rdr = cmd.ExecuteReader();
DataTable schema = rdr.GetSchemaTable();
此DataTable
包含结果集中每列的一行。您可以访问结果集中有关列的有用信息,如下所示:
foreach (DataRow rdrColumn in schema.Rows) {
String columnName = rdrColumn[schema.Columns["ColumnName"]].ToString();
String dataType = rdrColumn[schema.Columns["DataType"]].ToString();
}
Dictionary<int,String> columnNames = new Dictionary<int,string>();
int index = 0;
foreach (DataRow row in schema.Rows) {
columnNames.Add(index,row[schema.Columns["ColumnName"]].ToString());
index++;
}
还有名为ColumnSize
、NumericPrecision
、NumericScale
等项目。如果需要,结果集中的每一列都可以使用这些选项
编辑
您可以制作一个包含结果集列名称的字典,如下所示:
foreach (DataRow rdrColumn in schema.Rows) {
String columnName = rdrColumn[schema.Columns["ColumnName"]].ToString();
String dataType = rdrColumn[schema.Columns["DataType"]].ToString();
}
Dictionary<int,String> columnNames = new Dictionary<int,string>();
int index = 0;
foreach (DataRow row in schema.Rows) {
columnNames.Add(index,row[schema.Columns["ColumnName"]].ToString());
index++;
}
Dictionary columnNames=newdictionary();
int指数=0;
foreach(schema.Rows中的数据行){
添加(索引,行[schema.Columns[“ColumnName”]].ToString());
索引++;
}
此后,在遍历行时,可以按名称创建具有特定行值的列列表
while (rdr.Read()) {
/* for each row */
List<String> listOfColumns = new List<string>();
for (int i = 0; i < rdr.FieldCount; i++) {
var val = rdr[i];
if ("1" == val) {
/* if the value of the column is 1, add the column name from the dictionary */
listOfColumns.Add(columnNames[i]);
}
}
}
while(rdr.Read()){
/*每行*/
List LISTOFCLUMNS=新列表();
对于(int i=0;i
有关查看结果集元数据的示例,请参见此处 当您从查询中读取结果集时,使用MySQL.net连接器(以及任何RDMS连接器),您将拥有一个DataReader对象。在MySQL的例子中,它是一个MySqlDataReader
例如(来自)
拥有有效的DataReader后,可以使用GetSchemaTable()
方法获取描述结果集的DataTable
数据集合。此信息作为结果集的一部分来自MySQL。例如:
MySqlDataReader rdr = cmd.ExecuteReader();
DataTable schema = rdr.GetSchemaTable();
此DataTable
包含结果集中每列的一行。您可以访问结果集中有关列的有用信息,如下所示:
foreach (DataRow rdrColumn in schema.Rows) {
String columnName = rdrColumn[schema.Columns["ColumnName"]].ToString();
String dataType = rdrColumn[schema.Columns["DataType"]].ToString();
}
Dictionary<int,String> columnNames = new Dictionary<int,string>();
int index = 0;
foreach (DataRow row in schema.Rows) {
columnNames.Add(index,row[schema.Columns["ColumnName"]].ToString());
index++;
}
还有名为ColumnSize
、NumericPrecision
、NumericScale
等项目。如果需要,结果集中的每一列都可以使用这些选项
编辑
您可以制作一个包含结果集列名称的字典,如下所示:
foreach (DataRow rdrColumn in schema.Rows) {
String columnName = rdrColumn[schema.Columns["ColumnName"]].ToString();
String dataType = rdrColumn[schema.Columns["DataType"]].ToString();
}
Dictionary<int,String> columnNames = new Dictionary<int,string>();
int index = 0;
foreach (DataRow row in schema.Rows) {
columnNames.Add(index,row[schema.Columns["ColumnName"]].ToString());
index++;
}
Dictionary columnNames=newdictionary();
int指数=0;
foreach(schema.Rows中的数据行){
添加(索引,行[schema.Columns[“ColumnName”]].ToString());
索引++;
}
此后,在遍历行时,可以按名称创建具有特定行值的列列表
while (rdr.Read()) {
/* for each row */
List<String> listOfColumns = new List<string>();
for (int i = 0; i < rdr.FieldCount; i++) {
var val = rdr[i];
if ("1" == val) {
/* if the value of the column is 1, add the column name from the dictionary */
listOfColumns.Add(columnNames[i]);
}
}
}
while(rdr.Read()){
/*每行*/
List LISTOFCLUMNS=新列表();
对于(int i=0;i
有关查看结果集元数据的示例,请参见此处 我相信您正在询问如何在C#/.net中编写一个程序,从MySQL结果集中检索有关列名和列数据类型的信息。对吗?无论如何,phpmyadmin与这个问题无关。欢迎来到stackoverflow,你想用c#从mysql中读取特定数据并将其加载到combobox吗?是的,我想我想得到column name has data是“1”到combobox我相信你在问,在c#/.net中,编写一个程序,从MySQL结果集中检索有关列名和列数据类型的信息。对吗?无论如何,phpmyadmin与这个问题无关。欢迎使用stackoverflow,您想使用c#从mysql读取特定数据并将其加载到combobox吗?是的,我想获取列名,数据是“1”到combobox是的,我可以获取列名,谢谢。但是如何获取列名,数据是“1”是的,我可以得到列名,谢谢。但是如何得到有数据的列名是“1”