2009-05-14 4 views

Antwort

4

ok, ich glaube, ich habe es gefunden. Es sollte für alle oledb funktionieren und ist etw. wie:

public static List<string> getKeyNames(String tableName, DbConnection conn) 
    { 
     var returnList = new List<string>(); 


     DataTable mySchema = (conn as OleDbConnection). 
      GetOleDbSchemaTable(OleDbSchemaGuid.Primary_Keys, 
           new Object[] {null, null, tableName}); 


     // following is a lengthy form of the number '3' :-) 
     int columnOrdinalForName = mySchema.Columns["COLUMN_NAME"].Ordinal; 

     foreach (DataRow r in mySchema.Rows) 
     { 
      returnList.Add(r.ItemArray[columnOrdinalForName].ToString()); 
     } 

     return returnList; 
    } 
+1

Sie haben meinen Tag sooo viel gerettet. Wie hat eine so nützliche Lösung keine dokumentierte Nutzung, die ich finden kann, ist jenseits meiner. – Faber75