Archiv verlassen und diese Seite im Standarddesign anzeigen : [C#] Property ergänzen
phpMorpheus2 16-12-2009, 14:32 Kann ich das erstellte Property um weitere Daten erweitern, sodass sogesehen mehr Daten drin sind?
public void crmNeuenDatensatzStapeln(string feldname, string feldwert)
{
StringProperty prop = new StringProperty();
prop.Name = feldname;
prop.Value = feldwert;
this.dynEntity.Properties = new Property[] { prop };
}
Wie der Funktionsname schon sagt will ich diese Funktion mehrmals ausführen mit immer unterschiedlichen Parametern die
ich übergebe und zum schluss führe ich die Funktion crmNeuenDatensatzSpeichern() aus und diese Funktion
benötigt dann alle gestapelten Propertys in der "thiy.dynEntity.Properties" !
Wie ergänze ich einen Property ?
Dankeschön
AmicaNoctis 16-12-2009, 14:44 Hallo,
Momentan erzeugst du immer ein neues Array und überschreibst das alte, also wird nie was hinzugefügt. Da es ein Array ist und damit keine Adder-Methode (z. B. AddElement) hat, musst du den neuen Index von Hand vergeben und prop an der Stelle einfügen:
this.dynEntity.Properties[this.dynEntity.Properties.Length] = prop;
Gruß,
Amica
phpMorpheus2 16-12-2009, 14:47 Hallo,
Momentan erzeugst du immer ein neues Array und überschreibst das alte, also wird nie was hinzugefügt. Da es ein Array ist und damit keine Adder-Methode (z. B. AddElement) hat, musst du den neuen Index von Hand vergeben und prop an der Stelle einfügen:
this.dynEntity.Properties[this.dynEntity.Properties.Length] = prop;
Gruß,
Amica
Achja, :danke:
phpMorpheus2 16-12-2009, 14:53 Dennoch kann ich ohen vorherige instanzierung nicht prüfen wieviele Einträge das Property hat und somit kann ich nicht bestimmen wann er das Property erzeigen und wann nur hinzufügen soll.
Eine Idee?
AmicaNoctis 16-12-2009, 15:07 Wofür gibt es Konstruktoren? Darin kannst du das Array als leeres Array initialisieren (nicht instanziieren!). Oder sehe ich das falsch? Ich hab keine Ahnung von C#, daher gehe ich da nur mit Logik und dem Wissen aus anderen Sprachen ran.
phpMorpheus2 16-12-2009, 15:11 Das habe ich auch schon gesucht!
Wie bei php gibt es in C# kein __construct.
Zumindest habe ich nichts gefunden.
AmicaNoctis 16-12-2009, 15:17 RTFM (http://lmgtfy.com/?q=c%23+konstruktor)
phpMorpheus2 16-12-2009, 15:35 Es muss wohl eine Addierungsfunktion oder dergleichen geben denn ich kann
his.dynEntity.Properties[this.dynEntity.Properties.Length]
nicht nutzen, da ich immer darauf hingewiesen werde, das der Index außerhalb des gültigkeitsbereiches liegt.
AmicaNoctis 16-12-2009, 15:41 Google sagt mir, dass man Arrays umkopieren muss: Add Item to Array - C# - Snipplr (http://snipplr.com/view/4648/add-item-to-array/)
Wie man Google benutzt, weißt du aber? Ich habe das letzte Mal vor 5 Jahren C# gecodet, da waren die noch bei .NET Framework 1.1. Was ich dir hier also schreibe ist alles entweder geraten oder gegooglet. Warum kriegst du das dann nicht hin?
phpMorpheus2 16-12-2009, 15:45 Google sagt mir, dass man Arrays umkopieren muss: Add Item to Array - C# - Snipplr (http://snipplr.com/view/4648/add-item-to-array/)
Wie man Google benutzt, weißt du aber? Ich habe das letzte Mal vor 5 Jahren C# gecodet, da waren die noch bei .NET Framework 1.1. Was ich dir hier also schreibe ist alles entweder geraten oder gegooglet. Warum kriegst du das dann nicht hin?
Weil ich wohl viel zu viele andere Dinge im Kopf habe was meine Sicht auf das ganze beeinträchtigt.
Kurz: Ich steh einfach auf dem Schlauch :)
Edit:
Mensch, den Text versteh ich einfach nicht.
Ist es denn so schwer einfach nen neuen Index zu vergeben?
In php ist es ja einfach, in C# wieder mal nicht ..
AmicaNoctis 16-12-2009, 16:03 Denn verabschiede dich doch einfach von der Idee Array und nimm irgendeine Collection-Klasse.
<5 Minuten später>
Hab ich grad gegooglet: ArrayList-Methoden (System.Collections) (http://msdn.microsoft.com/de-de/library/system.collections.arraylist_methods%28VS.80%29.aspx)
Jetzt ist bei mir übrigens Schluss, da deine Mitarbeit unter aller Kanone ist.
phpMorpheus2 16-12-2009, 16:22 Die Arraylist lässt nur einen Wert pro row zu!
Bei den StringProperty kann man .name und .value vergeben.
Ich werde aber mal etwas versuchen.
AmicaNoctis 16-12-2009, 16:24 Aaaargh! Ich meine selbstverständlich eine ArrayList aus StringProperty-Objekten statt des momentanen Arrays aus StringProperty-Objekten
phpMorpheus2 16-12-2009, 16:55 public void crmNeuenDatensatzStapeln(string feldname, string feldwert)
{
StringProperty prop = new StringProperty();
System.Collections.ArrayList aList = new System.Collections.ArrayList();
prop.Name = feldname;
prop.Value = feldwert;
aList.Add(prop);
this.dynEntity.Properties = new Property[] { aList };
}
Ich fülle nun die ArrayList mit den Property-Werten auf (mit Add).
Danach packe ich die gesammelte List als new Property in die dynEntity
(Gut, hier im Beispiel passiert das jedes mal wenn ein neues Satz geschr. wird, ist aber nur ein Beispiel)
Doch kann ich nicht vom Typ arraylist in typ Property übergeben.
Mal schaun ob man konvertieren kann...
Und falls ja, ob es überhaupt klappt..
AmicaNoctis 16-12-2009, 17:14 Ich fülle nun die ArrayList mit den Property-Werten auf (mit Add).
und zwar jedes Mal eine neue Instanz, also fängst du wieder bei Null an.
Danach packe ich die gesammelte List als new Property in die dynEntity
Tust du nicht. Du erzeugst ein neues Property-Array (wegen der eckigen Klammern) mit einem Element und überschreibst (immer noch) das alte.
Du erzeugst also bei jedem Eintrag eine ArrayList mit der StringProperty drin und dann willst du diese ArrayList in ein Array einfügen, das vom Typ Property ist. Das kann doch nicht funktionieren.
Ändere den Typ von this.dynEntity.Properties auf List<StringProperty> (ja, genau so, mit den eckigen Klammern) und füge die neue StringProperty mit Add ein. Fertig. (Edit)
Doch kann ich nicht vom Typ arraylist in typ Property übergeben.
Daran hättest du eigentlich schon merken müssen, dass das totaler Käse ist.
Lerne die Grundlagen! C# - Galileo OpenBook (http://openbook.galileocomputing.de/csharp/)
phpMorpheus2 16-12-2009, 17:21 Danke für die Hilfe.
Grundlagen werde ich lernen, wenn ich ende der Woche endlich das Projekt fertig habe.
Ich kann schlecht lernen und gleichzeitig einen festen Projektplan einhalten um für den Kunden seine Programme zu programmieren.
Danke
AmicaNoctis 16-12-2009, 17:30 Ich kann schlecht lernen und gleichzeitig einen festen Projektplan einhalten um für den Kunden seine Programme zu programmieren.
:eek: Lernen sollte man bevor man einen Auftrag annimmt oder bin ich da altmodisch? Ich nehme jedenfalls keine C#-Projekte an und fühle mich nach unserer Unterhaltung darin fitter als du es zu sein scheinst.
phpMorpheus2 16-12-2009, 17:46 Ich wurde schon gefragt, sicher!
Doch ich habe gesagt, es dürfte nicht so schwierig sein und es hat auch einiger maßen geklappt.
Da setze ich dll verweise sowie onlinebibilotheken von verschiedenen sdk's,
spreche über sql und isam verschiedene Datenbanken an und synchronisiere beide mit einem schönen algorithmus und dann kriegt man nicht mal eine array zu stande weil es einen am Ende des Arbeitstages nurnoch die Nerven raubt :motz:
Aber das wird schon.
:grin:
|