代码之家  ›  专栏  ›  技术社区  ›  patrick

使用GetOleDbSchemaTable获取名为“Street”的表的列

  •  3
  • patrick  · 技术社区  · 15 年前

    如果可能的话,我想使用.NET 3.5框架。

    2 回复  |  直到 15 年前
        1
  •  11
  •   Tom Mayfield    13 年前
    using (OleDbConnection connection = new OleDbConnection(connectionString))
    {
        connection.Open();
    
        DataTable tableColumns = connection.GetOleDbSchemaTable(OleDbSchemaGuid.Columns, new object[] { null, null, "Streets", null }));
        foreach (DataRow row in tableColumns.Rows)
        {
            var columnNameColumn = row["COLUMN_NAME"];
            var dateTypeColumn = row["DATA_TYPE"];
            var ordinalPositionColumn = row["ORDINAL_POSITION"];
            ...
        }
    }
    
        2
  •  0
  •   patrick    15 年前

    这对我很有用,将table street的列名放在列表中

    OleDbCommand mdbCommand = new OleDbCommand("SELECT * FROM Streets", mdbConnection);
    OleDbDataReader myReader = mdbCommand.ExecuteReader(CommandBehavior.KeyInfo);
    DataTable  schemaTable = myReader.GetSchemaTable();
    List<String> columnNameList = new List<string>();
    foreach (DataRow myField in schemaTable.Rows)
    {
    foreach (DataColumn myProperty in schemaTable.Columns)
    {
    if (myProperty.ColumnName == "ColumnName") columnNameList.Add(myField[myProperty].ToString());
    }
    
    }