/*********************************************************************/ /// <summary> /// Ließt aus dem Reader den nächsten TableEntry aus. /// </summary> /// <param name="reader">Reader der den Zugriff auf den Datensatz bietet</param> /// <param name="tableEntry">ausgelesener Datensatz</param> /// <returns>Erfolg des Auslesens</returns> /// <remarks>Am besten mit einer Schleife aufrufen, bis die Methode false zurückliefert. /// Außerdem muss sichergestellt sein dass das ID Attribut mit ausgelesen wurde</remarks> protected bool getNextTableEntry(SQLiteDataReader reader, out CTableEntry tableEntry) { tableEntry = null; if (reader.Read() == true) { //für jede Spalte arbeite er jedes element einzeln ab for (int field = 0; field < reader.FieldCount; field++) { switch (field) { case 0: tableEntry = new CTableEntry(reader[field].ToString()); break; default: //if (mAttributeTypeList[field - 1].Used == true) { tableEntry.addValue(new CAttributeValue(mAttributeTypeList[field - 1], tableEntry.Index, reader[field].ToString(), this)); } // die Normalen Attribute break; } } return(true); } return(false); }
public void ItemTestIndex() { CTableEntryList list = new CTableEntryList(); CAttributeType attrType = new CAttributeType(0); attrType.setUsed("asd", E_DATATYPE.E_STRING, false); for (int i = 0; i < 10; i++) { CTableEntry entry = new CTableEntry(i.ToString()); entry.addValue(new CAttributeValue(attrType, i.ToString(), i.ToString(), null)); list.addEntry(entry); } CTableEntry singleEntry; singleEntry = list[5]; Assert.IsTrue(singleEntry.Size == 1); Assert.IsTrue(singleEntry[0].EntryIndex == "5"); Assert.IsTrue(singleEntry[0].StringValue == "5"); }