使用GetSchemaTable()只获取列名是否可以使用GetSchemaTable()只获取列名?我一直在尝试使用这种方法(仅)检索列名,是否可能。DataTable表=myReader.GetSchemaTable();foreach(DataRowmyFieldintable.Rows){foreach(DataColumnmyPropertyintable.Columns){fileconnectiongrid.Rows.Add(myProperty.ColumnName+"="+myField[myProperty].ToString());这段代码检索了很多我不需要的表数据,我只需要一个包含列名的列表!:您需要使用ExecuteReader(CommandBehavior.SchemaOnly)):DataTableschema=null;使用(varcon=newSqlConnection(connection)){使用(varschemaCommand=newSqlCommand("SELECT*FROMtable",con)){con.打开();使用(varreader=schemaCommand.ExecuteReader(CommandBehavior.SchemaOnly)){schema=reader.GetSchemaTable();}}}SchemaOnly:查询只返回列信息。使用SchemaOnly时,SQLServer的.NETFramework数据提供程序先于使用SETFMTONLYON执行的语句。列名位于每行的第一列。我不认为可以省略其他列信息,如ColumnOrdinal、ColumnSize、NumericPrecision等,因为在这种情况下你不能使用reader.GetString,只能使用reader.GetString。但是如果你只想要列名,你的循环是不正确的:}如果只想显示列名,把代码改成下面这样。您的原始代码不仅试图显示列名,而且还试图显示实际数据值。DataTable表=myReader.GetSchemaTable();foreach(DataRowmyFieldintable.Rows){foreach(DataColumnmyPropertyintable.Columns){fileconnectiongrid.Rows.Add(myProperty.ToString());这将为您提供所有列名称,您可以将它们放在string[]中并根据需要处理它们。以上就是C#学习教程:使用GetSchemaTable()只获取列名共享的所有内容。如果对大家有用,需要进一步了解C#学习教程,希望大家多加关注—foreach(varcolumnNameinDataTable.Columns){Console.WriteLine(columnName);}//将列架构检索到DataTable.schemaTable=reader.GetSchemaTable();intindex=schemaTable.Columns.IndexOf("ColumnName");DataColumncolumnName=schemaTable.Columns[index];//对于表中的每个字段...foreach(DataRowmyFieldinschemaTable.Rows){StringcolumnNameValue=myField[columnName].ToString();Console.WriteLine("列名"+columnNameValue);}代表立场,如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
