Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Portal
  • |
  • Mitglieder
Beiträge von chanderegg
Thema: SQL Server 2008 und VisualStudio08 auf Vista
Am im Forum: Datentechnologien

verwendetes Datenbanksystem: MSSQL 08

Hallo CSharpler

Ich weiss, dass dies vielleicht nicht der beste Ort ist, um dies zu posten aber nach langer Suche seit ihr meine letzte Hoffnung.

Ich habe auf meinem Laptop den SQL Server 08 installiert. Dies hat auch funktioniert und ich konnte mich mit dem localhost verbinden. Danach wollte ich ein neues Entity-Framework im VisualStudio erstellen. Auch dies funktionierte, jedoch leider nur bis ich das Programm das erste mal Testen wollte.

Seitdem kann ich mich nicht mehr mit dem localhost verbinden.

Ich musste für das Entity-Framewok das SP1 für mein VisualStudio installieren. Kann es sein, dass dies den Fehler verursacht? Ein Arbeitskollege meinte MSSQL 08 sei allgemein mit Vista nicht kompatipel. Kann das sein? Wenn dem so wäre, wäre dies ja oberpeinlich für MS. Kann dies irgendwie nicht glauben.

Weiss jemand wie ich den SQL Server zum laufen bringen kann?

Vielen Dank für euer Hilfe

Thema: OleDB SoapException beim Insert-Statement
Am im Forum: Datentechnologien

verwendetes Datenbanksystem: Oracle 9.2

Hallo

Ich schreibe zur Zeit einen Webservice, welcher Daten von einer Oracle-DB ausliest und schreibt. Das auslesen hat ohne Problem funktioniert. Leider habe ich es noch nicht geschafft den Insert zu machen.
Mein Code sieht wie folgt aus:


            //Query um einen neuen Patient zu erstellen
            query = "INSERT INTO PS001 ([PSFIR], [PSKNR], [PSSPR], [PSANR], [PSNAM], [PSVNA], [PSAD1], [PSAD2], [PSPLZ], [PSORT], "
                    + "[PSLNA], [PSSNA], [PSTE1], [PSTE2], [PSAHV], [PSGBJ], [PSGBM], [PSGBT], [PSEIJ], [PSEIM], [PSEIT], [PSTYP], [PSDSA], "
                    + "[PSGRU], [PSSEX], [PSKON], [PSZIV], [PSCO1], [PSCO2], [PSCO3], [PSCOU], [PSKGN], [PSHE1], [PSHE2], [PSSCH], [PSLAN], "
                    + "[PSNAT], [PSBEW], [PSKAN], [PSGEM], [PSSPI], [PSGV1], [PSGV2], [PSGV3], [PSGV4], [PSGVP], [PSGVO], [PSTEV], [PSFUM], "
                    + "[PSAV1], [PSAT1], [PSAV2], [PSAT2], [PSAV3], [PSAT3], [PSBE1], [PSBE2], [PSAR1], [PSAR2], [PSAR3], [PSAR4], [PSARP], "
                    + "[PSARO], [PSSAL], [PSZKO], [PSMSP], [PSMST], [PSDLB], [PSKKS], [PSKKK], [PSKN1], [PSKF1], [PSKM1], [PSKN2], [PSKF1], "
                    + "[PSKM2], [PSTOJ], [PSTOM], [PSTOT], [PSTOH], [PSTOZ], [PSDFJ], [PSDFM], [PSDMT], [PSEIN], [PSTGS], [PSTX0], [PSTX1], "
                    + "[PSTX2], [PSTX3], [PSTX4], [PSTX5], [PSTX6], [PSTX7], [PSTX8], [PSTX9], [PSAX1], [PSAX2], [PSAX3], [PSUSR], [PSTIM], "
                    + "[PSAX4], [PSAX5], [PSAX6], [PSAX7], [PSAX8], [PSGVL]) VALUES (@Firmennummer, @Patientennummer, @Sprache, @Anrede, "
                    + "@Name, @Vorname, @Adresse1, @Adresse2, @PLZ, @Ort, @LedigerName, @Matchname, @TelefonP, @TelefonG, @AHV, @GeburtsdatumYear, "
                    + "@GeburtsdatumMonth, @GeburtsdatumDay, @EintrittsdatumYear, @EintrittsdatumMonth, @EintrittsdatumDay, @Typ, @DebSammelkonto, @Patientengruppe, " 
                    + "@Geschlecht, @Konfesion, @Zivilstand, @Reserve1, @Reserve2, @Reserve3, @Garantencode, @Krankengeschichte, @Heimatort1, @Heimatort2, "
                    + "@Schriften, @Land, @Nationalitaet, @Bewiligung, @Kanton, @Gemeinde, @Spitalverband, @GesetzlicherVertreter1, @GesetzlicherVertreter2, "
                    + "@GesetzlicherVertreter3, @GesetzlicherVertreter4, @GesetzlicherVertreterPLZ, @GesetzlicherVertreterOrt, @GesetzlicherVertreterTelefon, "
                    + "@FakUml, @VerwaltungName1, @VerwaltungTelefon1, @VerwaltungName2, @VerwaltungTelefon2, @VerwaltungName3, @VerwaltungTelefon3, @BerufStamm, "
                    + "@BerufAusuebung, @ArbeitgeberAdresse1, @ArbeitgeberAdresse2, @ArbeitgeberAdresse3, @ArbeitgeberAdresse4, @ArbeitgeberPLZ, @ArbeitgeberOrt, "
                    + "@SaldoDebitoren, @Zahlungskondition, @Mahnsperre, @ErreichteMahnstufe, @DatumletzteBewegung, @KontokorrentSaldo, @KontokorrentKonto, "
                    + "@Grundversicherung, @KKFiliale1, @KKMitgliedsumme1, @Zusatzversicherung, @KKFiliale2, @KKMitgliedsumme2, @TodesdatumYear, @TodesdatumMonth, "
                    + "@TodesdatumDay, @TodesdatumHour, TodesdatumMinute, @AustrittsdatumYear, AustrittsdatumMonth, AustrittsdatumDay, @AnzahlEintritte, Taschengeld, "
                    + "@FreierText0, @Beruf, @FreierText2, @FreierText3, @Email, @FreierText5, @FreierText6, @FreierText7, @FreierText8, @FreierText9, @Adressfeld1, "
                    + "@Adressfeld2, @Adressfeld3, @UserLetzteAenderung, @LetzteAenderungDatum, @Adressfeld4, @Adressfeld5, @Adressfeld6, @Adressfeld7, @Adressfeld8, @GesetzlicherVertreterLand);";


            myCommand = new OleDbCommand(query, myConnection);

            //Füllt die Parameter mit den Werten
            myCommand.Parameters.Add("@Firmennummer", OleDbType.Integer).Value = Firmennummer;
            myCommand.Parameters.Add("@Patientennummer", OleDbType.Integer).Value = Patientennummer;
            myCommand.Parameters.Add("@Sprache", OleDbType.Char).Value = Sprache;
            myCommand.Parameters.Add("@Anrede", OleDbType.Char).Value = Anrede;
            myCommand.Parameters.Add("@Name", OleDbType.VarChar).Value = Name;
            myCommand.Parameters.Add("@Vorname", OleDbType.VarChar).Value = Vorname;
            myCommand.Parameters.Add("@Adresse1", OleDbType.VarChar).Value = Adresse1;
            myCommand.Parameters.Add("@Adresse2", OleDbType.VarChar).Value = Adresse2;
            myCommand.Parameters.Add("@PLZ", OleDbType.VarChar).Value = PLZ;
            myCommand.Parameters.Add("@Ort", OleDbType.VarChar).Value = Ort;
            myCommand.Parameters.Add("@LedigerName", OleDbType.VarChar).Value = LedigerName;
            myCommand.Parameters.Add("@Matchname", OleDbType.VarChar).Value = Matchname;
            myCommand.Parameters.Add("@TelefonP", OleDbType.VarChar).Value = TelefonP;
            myCommand.Parameters.Add("@TelefonG", OleDbType.VarChar).Value = TelefonG;
            myCommand.Parameters.Add("@AHV", OleDbType.VarChar).Value = AHV;
            myCommand.Parameters.Add("@GeburtsdatumYear", OleDbType.Integer).Value = Geburtsdatum.Year;
            myCommand.Parameters.Add("@GeburtsdatumMonth", OleDbType.Integer).Value = Geburtsdatum.Month;
            myCommand.Parameters.Add("@GeburtsdatumDay", OleDbType.Integer).Value = Geburtsdatum.Day;
            myCommand.Parameters.Add("@EintrittsdatumYear", OleDbType.Integer).Value = Eintrittsdatum.Year;
            myCommand.Parameters.Add("@EintrittsdatumMonth", OleDbType.Integer).Value = Eintrittsdatum.Month;
            myCommand.Parameters.Add("@EintrittsdatumDay", OleDbType.Integer).Value = Eintrittsdatum.Day;
            myCommand.Parameters.Add("@Typ", OleDbType.Integer).Value = 1;
            myCommand.Parameters.Add("@DebSammelkonto", OleDbType.Integer).Value = DebSammelkonto;
            myCommand.Parameters.Add("@Patientengruppe", OleDbType.VarChar).Value = Patientengruppe;
            myCommand.Parameters.Add("@Geschlecht", OleDbType.Char).Value = Geschlecht;
            myCommand.Parameters.Add("@Konfesion", OleDbType.VarChar).Value = Konfesion;
            myCommand.Parameters.Add("@Zivilstand", OleDbType.VarChar).Value = Zivilstand;
            myCommand.Parameters.Add("@Reserve1", OleDbType.VarChar).Value = Reserve1;
            myCommand.Parameters.Add("@Reserve2", OleDbType.VarChar).Value = Reserve2;
            myCommand.Parameters.Add("@Reserve3", OleDbType.VarChar).Value = Reserve3;
            myCommand.Parameters.Add("@Garantencode", OleDbType.Char).Value = Garantencode;
            myCommand.Parameters.Add("@Krankengeschichte", OleDbType.VarChar).Value = Krankengeschichte;
            myCommand.Parameters.Add("@Heimatort1", OleDbType.VarChar).Value = Heimatort1;
            myCommand.Parameters.Add("@Heimatort2", OleDbType.VarChar).Value = Heimatort2;
            myCommand.Parameters.Add("@Schriften", OleDbType.VarChar).Value = Schriften;
            myCommand.Parameters.Add("@Land", OleDbType.VarChar).Value = Land;
            myCommand.Parameters.Add("@Nationalitaet", OleDbType.VarChar).Value = Nationalitaet;
            myCommand.Parameters.Add("@Bewiligung", OleDbType.Char).Value = Bewiligung;
            myCommand.Parameters.Add("@Kanton", OleDbType.VarChar).Value = Kanton;
            myCommand.Parameters.Add("@Gemeinde", OleDbType.VarChar).Value = Gemeinde;
            myCommand.Parameters.Add("@Spitalverband", OleDbType.VarChar).Value = Spitalverband;
            myCommand.Parameters.Add("@GesetzlicherVertreter1", OleDbType.VarChar).Value = GesetzlicherVertreter1;
            myCommand.Parameters.Add("@GesetzlicherVertreter2", OleDbType.VarChar).Value = GesetzlicherVertreter2;
            myCommand.Parameters.Add("@GesetzlicherVertreter3", OleDbType.VarChar).Value = GesetzlicherVertreter3;
            myCommand.Parameters.Add("@GesetzlicherVertreter4", OleDbType.VarChar).Value = GesetzlicherVertreter4;
            myCommand.Parameters.Add("@GesetzlicherVertreterPLZ", OleDbType.VarChar).Value = GesetzlicherVertreterPLZ;
            myCommand.Parameters.Add("@GesetzlicherVertreterOrt", OleDbType.VarChar).Value = GesetzlicherVertreterOrt;
            myCommand.Parameters.Add("@GesetzlicherVertreterTelefon", OleDbType.VarChar).Value = GesetzlicherVertreterTelefon;
            myCommand.Parameters.Add("@FakUml", OleDbType.VarChar).Value = FakUml;
            myCommand.Parameters.Add("@VerwaltungName1", OleDbType.VarChar).Value = VerwaltungName1;
            myCommand.Parameters.Add("@VerwaltungTelefon1", OleDbType.VarChar).Value = VerwaltungTelefon1;
            myCommand.Parameters.Add("@VerwaltungName2", OleDbType.VarChar).Value = VerwaltungName2;
            myCommand.Parameters.Add("@VerwaltungTelefon2", OleDbType.VarChar).Value = VerwaltungTelefon2;
            myCommand.Parameters.Add("@VerwaltungName3", OleDbType.VarChar).Value = VerwaltungName3;
            myCommand.Parameters.Add("@VerwaltungTelefon3", OleDbType.VarChar).Value = VerwaltungTelefon3;
            myCommand.Parameters.Add("@BerufStamm", OleDbType.VarChar).Value = BerufStamm;
            myCommand.Parameters.Add("@BerufAusuebung", OleDbType.VarChar).Value = BerufAusuebung;
            myCommand.Parameters.Add("@ArbeitgeberAdresse1", OleDbType.VarChar).Value = ArbeitgeberAdresse1;
            myCommand.Parameters.Add("@ArbeitgeberAdresse2", OleDbType.VarChar).Value = ArbeitgeberAdresse2;
            myCommand.Parameters.Add("@ArbeitgeberAdresse3", OleDbType.VarChar).Value = ArbeitgeberAdresse3;
            myCommand.Parameters.Add("@ArbeitgeberAdresse4", OleDbType.VarChar).Value = ArbeitgeberAdresse4;
            myCommand.Parameters.Add("@ArbeitgeberPLZ", OleDbType.VarChar).Value = ArbeitgeberPLZ;
            myCommand.Parameters.Add("@ArbeitgeberOrt", OleDbType.VarChar).Value = ArbeitgeberOrt;
            myCommand.Parameters.Add("@SaldoDebitoren", OleDbType.Integer).Value = SaldoDebitoren;
            myCommand.Parameters.Add("@Zahlungskondition", OleDbType.VarChar).Value = Zahlungskondition;
            myCommand.Parameters.Add("@Mahnsperre", OleDbType.Char).Value = Mahnsperre;
            myCommand.Parameters.Add("@ErreichteMahnstufe", OleDbType.Integer).Value = ErreichteMahnstufe;
            myCommand.Parameters.Add("@DatumletzteBewegung", OleDbType.Integer).Value = DatumletzteBewegung;
            myCommand.Parameters.Add("@KontokorrentSaldo", OleDbType.Integer).Value = KontokorrentSaldo;
            myCommand.Parameters.Add("@KontokorrentKonto", OleDbType.Integer).Value = KontokorrentKonto;
            myCommand.Parameters.Add("@Grundversicherung", OleDbType.Integer).Value = Grundversicherung;
            myCommand.Parameters.Add("@KKFiliale1", OleDbType.VarChar).Value = KKFiliale1;
            myCommand.Parameters.Add("@KKMitgliedsumme1", OleDbType.VarChar).Value = KKMitgliedsumme1;
            myCommand.Parameters.Add("@Zusatzversicherung", OleDbType.Integer).Value = Zusatzversicherung;
            myCommand.Parameters.Add("@KKFiliale2", OleDbType.VarChar).Value = KKFiliale2;
            myCommand.Parameters.Add("@KKMitgliedsumme2", OleDbType.VarChar).Value = KKMitgliedsumme2;
            myCommand.Parameters.Add("@TodesdatumYear", OleDbType.Integer).Value = Todesdatum.Year;
            myCommand.Parameters.Add("@TodesdatumMonth", OleDbType.Integer).Value = Todesdatum.Month;
            myCommand.Parameters.Add("@TodesdatumDay", OleDbType.Integer).Value = Todesdatum.Day;
            myCommand.Parameters.Add("@TodesdatumHour", OleDbType.Integer).Value = Todesdatum.Hour;
            myCommand.Parameters.Add("@TodesdatumMinute", OleDbType.Integer).Value = Todesdatum.Minute;
            myCommand.Parameters.Add("@AustrittsdatumYear", OleDbType.Integer).Value = Austrittsdatum.Year;
            myCommand.Parameters.Add("@AustrittsdatumMonth", OleDbType.Integer).Value = Austrittsdatum.Month;
            myCommand.Parameters.Add("@AustrittsdatumDay", OleDbType.Integer).Value = Austrittsdatum.Day;
            myCommand.Parameters.Add("@AnzahlEintritte", OleDbType.Integer).Value = AnzahlEintritte;
            myCommand.Parameters.Add("@Taschengeld", OleDbType.Integer).Value = Taschengeld;
            myCommand.Parameters.Add("@FreierText0", OleDbType.VarChar).Value = FreierText0;
            myCommand.Parameters.Add("@Beruf", OleDbType.VarChar).Value = Beruf;
            myCommand.Parameters.Add("@FreierText2", OleDbType.VarChar).Value = FreierText2;
            myCommand.Parameters.Add("@FreierText3", OleDbType.VarChar).Value = FreierText3;
            myCommand.Parameters.Add("@Email", OleDbType.VarChar).Value = Email;
            myCommand.Parameters.Add("@FreierText5", OleDbType.VarChar).Value = FreierText5;
            myCommand.Parameters.Add("@FreierText6", OleDbType.VarChar).Value = FreierText6;
            myCommand.Parameters.Add("@FreierText7", OleDbType.VarChar).Value = FreierText7;
            myCommand.Parameters.Add("@FreierText8", OleDbType.VarChar).Value = FreierText8;
            myCommand.Parameters.Add("@FreierText9", OleDbType.VarChar).Value = FreierText9;
            myCommand.Parameters.Add("@Adressfeld1", OleDbType.VarChar).Value = Adressfeld1;
            myCommand.Parameters.Add("@Adressfeld2", OleDbType.VarChar).Value = Adressfeld2;
            myCommand.Parameters.Add("@Adressfeld3", OleDbType.VarChar).Value = Adressfeld3;
            myCommand.Parameters.Add("@UserLetzteAenderung", OleDbType.VarChar).Value = UserLetzteAenderung;
            myCommand.Parameters.Add("@LetzteAenderungDatum", OleDbType.Date).Value = LetzteAenderungDatum;
            myCommand.Parameters.Add("@Adressfeld4", OleDbType.VarChar).Value = Adressfeld4;
            myCommand.Parameters.Add("@Adressfeld5", OleDbType.VarChar).Value = Adressfeld5;
            myCommand.Parameters.Add("@Adressfeld6", OleDbType.VarChar).Value = Adressfeld6;
            myCommand.Parameters.Add("@Adressfeld7", OleDbType.VarChar).Value = Adressfeld7;
            myCommand.Parameters.Add("@Adressfeld8", OleDbType.VarChar).Value = Adressfeld8;
            myCommand.Parameters.Add("@GesetzlicherVertreterLand", OleDbType.VarChar).Value = GesetzlicherVertreterLand;

            //Führt das Query aus
            myCommand.ExecuteNonQuery();


Nun kommt aber immer folgende Fehlermeldung:
System.Web.Services.Protocols.SoapException: Die Anforderung konnte vom Server nicht verarbeitet werden. ---> System.Data.OleDb.OleDbException: ORA-00928: missing SELECT keyword
bei System.Data.OleDb.OleDbCommand.ExecuteCommandTextErrorHandling(OleDbHResult hr)
bei System.Data.OleDb.OleDbCommand.ExecuteCommandTextForMultpleResults(tagDBPARAMS dbParams, Object& executeResult)
bei System.Data.OleDb.OleDbCommand.ExecuteCommandText(Object& executeResult)
bei System.Data.OleDb.OleDbCommand.ExecuteCommand(CommandBehavior behavior, Object& executeResult)
bei System.Data.OleDb.OleDbCommand.ExecuteReaderInternal(CommandBehavior behavior, String method)
bei System.Data.OleDb.OleDbCommand.ExecuteNonQuery()
bei PABS.WebService.DataAccess.DatenzugriffsKlasse.PatientEroeffnen(PatientenstammLong Patient) in C:\Projects\PABS.WebService\PABS.WebService.DataAccess\DatenzugriffsKlasse.cs:Zeile 571.
--- Ende der internen Ausnahmestapelüberwachung ---

Ich verstehe nicht, wieso ein Select verlangt wird. Kann mir da jemand weiter helfen?

Ich habe mehrere Versuche gestartet. Unter anderem habe ich auch die Werte anstatt mit Parametern direkt in das Query integriert. Dabei gab es jeweils keine Fehlermeldung aber es wurde auch kein Eintrag in die DB gemacht.

Zudem macht es anscheinend keinen Unterschied, ob man das Query mit ; beendet oder nicht.

Ich komme hier einfach nicht weiter und das Internet ist zu diesem Thema leider auch wiedersprüchlich. Kann mir jemand den entscheidenden Hinweis geben?

Vielen Dank

Thema: XML Attribut (URL) wird nicht 100% ausgelesen?
Am im Forum: Datentechnologien

Hallo Taki Haki

So wie du das Programm geschrieben hast sollte dies eigentlich stimmen.

Meiner Meinung nach könnte es vielleicht sein, dass this.cardService.Url den Port entfernt. Damit habe ich aber keine Erfahrung und kann dir somit auch nicht wirklich weiter helfen.

Trozdem viel Glück beim Lösen des Problems

Thema: XML Datei auslesen und Output formatieren
Am im Forum: Datentechnologien

Hey Leuts

Was ihr da geschrieben habt funktioniert sicherlich aber um Daten aus einer XML-Datei zu verarbeiten, eignet sich meiner Meinung nach XSLT am besten.
Es ist relativ einfach und man hat sich schnell eingearbeitet.

Doch vorsicht: Komplexe Strukturen (wie etwa doppelte foreach-Schlaufen) können nicht generiert werden.

Probierts doch mal aus

Thema: Entity Framework auf Änderungen überprüfen
Am im Forum: Datentechnologien

Hallo zusammen

Danke für Eure Disskusion. Ich sehe, dass in diesem Bereich noch nachholbedarf besteht.

Ich möchte euch nun noch meine Lösung präsentieren:

Ich stelle die Objekte in einem DataGridView dar und lade dieses immer wieder mit neuen Daten. Damit ich die Änderungen verfolgen kann, schreibe ich die Werte in Strings. (wenn eine Zelle/Reihe angewählt wird). Danach vergleiche ich diese Werte mit den mit den Zellen und notiere diese falls es Änderungen gegeben hat.
Es ist nicht gerade eine schöne Lösung, da für jede Spalte ein String erstellt werden muss und die Daten bei jedem SelectionChanged-Event in diese Strings geladen werden müssen. Es ist aber einfach zu programmieren und gibt keinen grossen Mehraufwand.

Thema: Entity Framework auf Änderungen überprüfen
Am im Forum: Datentechnologien

Danke für die schnelle Antwort.

Leider habe ich mich vorher schon bei msdn erkundet und diese Seite entdeckt. Jedoch ohne, dass ich verstanden hätte wie ich nun mein Problem lösen kann.

Thema: Entity Framework auf Änderungen überprüfen
Am im Forum: Datentechnologien

verwendetes Datenbanksystem: Oracle 10.2

Hallo zusammen

Ich habe ein Programm geschrieben, welches Daten mittels Entity Framework lädt und in einem DataGridView darstellt.
Nun möchte ich, dass beim Beenden des Programms überprüft wird, ob etwas verändert wurde und dann nachfragt, ob diese Änderungen gespeichert werden sollen.

Ich habe mir gedacht, es könnte so etwas wie eine hasChanges-Methode haben. Leider gibt es diese aber nicht.
Weiss jemand wie ich dies überprüfen kann?

Thema: XSLT: Doppelte for-each Schlaufe
Am im Forum: Datentechnologien

verwendetes Datenbanksystem: Oracle 10

Hallo zusammen

Ich bin gerade an meiner praktischen Abschlussarbeit und wäre deshalb sehr froh, wenn mir jemand helfen kann.

Mein Auftrag lautet Informationen über den Aufbau einer Datenbank von einer Datenbank zu laden und in eine .sql-Datei umzuwandeln, damit man die Datenbank nicht beim Kunden von Hand erstellen muss.

Ich schreibe die Daten in eine XML-Datei und möchte diese dann mit einer XSLT-Vorlage transformieren. Die XML-Datei sieht etwa wie folgt aus:
<Root>
<Spalte Name = kdsifjds1 />
<Spalte Name = kdsifjds 2/>
<Spalte Name = kdsifjds 3/>
<Spalte Name = kdsifjds 4/>
<Constraint Name = sjdoifjs1 Spalte= dkfjfdij1/>
<Constraint Name = sjdoifjs2 Spalte= dkfjfdij2/>
<Constraint Name = sjdoifjs3 Spalte= dkfjfdij3/>
</Root>

Nun mein Problem:
Ich erstelle die Tabelle und lade dazu jede Spalte mit Datentyp etc. Das heisst ich bin in einer for-each Schlaufe. Nun gibt es Spalten die einen Constraint besitzen. Ich möchte nun überprüfen, ob der Name der Spalte gleich dem Attribut Spalte des Constraints ist (das geht noch) und dann den Namen von genau diesem Constriant ausgeben.

Ich schaffe es, dass es die Namen aller Constraints hinschreibt aber nicht ein einzelnes.

In C# würde ich dies mit einer doppelten for-each Schlaufe machen aber dies funktioniert in XSLT irgendwie nicht.

Weiss jemand einen Rat?
Vielen Dank schon im voraus.

Thema: Problem mit Entity Framework und Windows Form
Am im Forum: Rund um die Programmierung

Hallo zusammen.

es handelt sich um das Entity Framework aber der Fehler tritt im Form auf.

Ich schreibe ein Programm, welches verschiedene Usercontrol in einem Form integriert. Ich habe diese am Anfang des Projekts erstellt und ins Form eingebetet. Danach habe ich Mittels Entity Framework Daten von einer Datenbank geholt und arbeite mit denen sowohl im Form als auch im Usercontrol.

Nun wollte ich nach langem wieder einmal etwas im Form ändern. Als ich auf Form1.cs geklickt habe, kam die Meldung, die ich im Anhang hinzugefügt habe.
Sie lautet:
The specified named connection is either not found in the configuration, not intended to be used with the EntityClient provider, or not valid.

Das komische ist nun aber, dass das Programm einwandfrei funktioniert. Sprich die Verbindung mit der Datenbank funktioniert. Ich habe dann auf Ignore and Continue geklickt. Danach konnte ich das Form zwar wieder sehen, jedoch waren alle Usercontrols aus dem Form gelöscht und es kommt eine Fehlermeldung, wenn man versucht diese wieder einzufügen.

Ich weiss, dass ihr nicht einfach aus dem Nichts die Antwort wisst und etwas Code sehen möchtet. Ich weiss jedoch leider nicht, welchen ich posten müsste. Ich habe es auch schon von den Spezis in unserer Firma untersuchen lassen aber leider wussten die auch nicht weiter. Deshalb versuche ich mein Glück einfach mal. Vielleicht hatte ja jemand das gleiche Problem.

Thema: Kuriosität von Entity Framework
Am im Forum: Datentechnologien

Hallo zusammen

Danke für die vielen Antworten.
Im letzten Post wurde noch mehr Code verlangt.


SGEntities alleDaten = new SGEntities();

        public List<Version> dazugehörigeVersionenLaden(String Projektname)
        {
            List<Version> VersionDaten = new List<Version>();

            foreach (Version version in alleDaten.VersionSet.Where(vs => vs.ProjektName.Trim() == Projektname) )
            {
               VersionDaten.Add(version);
            }
            return VersionDaten;
        }
Ich habe es jetz mit dieser Version gelöst und es funktioniert gut. Der Thread war einfach für mich, damit ich auch verstehe was ich mache.

@GarlandGreene: Ich habe natürlich verschiedene Projektnamen (sonst würde die Variabel keinen Sinn machen) und habe diese auch alle getestet. Es haben alle so funktioniert wie angegeben.

Thema: Kuriosität von Entity Framework
Am im Forum: Datentechnologien

verwendetes Datenbanksystem: Oracle 9

Hallo zusammen

Ich habe nicht unbedingt ein Problem, möchte aber etwas nachfragen, was ich nicht verstehe.

Ich beschäftige mich zur Zeit mit Entity Framework. Dabei kann man mit einer .Where-Methode die Daten einschränken.

Nun die Kuriosität.
Wenn ich überprüfen will, ob ein Wert einer Spalte mit dem Wert einer Variablen(String) übereinstimmt, so funktioniert dies nicht. wenn ich aber einfach mal einen Wert hinschreibe("Wert") so funktioniert dieses.

Nachdem ich dies herausgefunden habe, habe ich es noch auf andere Weise versucht und zum Teil Erfolg gehabt. Nur verstehe ich leider nicht wieso dies zum Teil geht und zum Teil nicht.

Ich liste mal ein paar Versuche auf:


alleDaten.VersionSet.Where(vs => vs.ProjektName.Trim().Equals(Projektname)) //geht

alleDaten.VersionSet.Where(vs => vs.ProjektName.Contains(Projektname)) //geht

alleDaten.VersionSet.Where(vs => vs.ProjektName == Projektname) //geht nicht

alleDaten.VersionSet.Where(vs => vs.ProjektName == "PEKA") //geht

alleDaten.VersionSet.Where(vs => vs.ProjektName.Trim() == Projektname) //geht

Es ist mir klar, dass es so aussieht als ob die Leerschläge im DB-Eintrag diesen "Fehler" verursachen. Ich möchte aber wissen, wieso == "PEKA" funktioniert, während == Projektname nicht funktioniert.(Projektname hat auch den Wert PEKA). Zudem funktionieren alle Versionen, wenn ich einen Double Wert vergleiche.

Kann mit dies jemand erklären?

Thema: Entity Framework mit OracleDB
Am im Forum: Datentechnologien

verwendetes Datenbanksystem: Oracle

Hallo zusammen

Ich möchte ein neues Programm schreiben und dabei gleich das Entity Framework testen. Nun habe ich aber eine OracleDB. Ich habe im Netz gesucht und bin nun fast verwirrter als vorher. Zum Teil lese ich, dass es für jeden Provider gehen sollte und zum Teil lese ich, dass es nicht geht.

Ist es nun möglich das Entity Framework für eine OracleDB zu benützen?

Vielen Dank für eure Auskunft

Thema: update-query via oledb ausführen
Am im Forum: Datentechnologien

So nun habe ich es endlich gelöst.

Der Fehler war, dass ich das falsche Query genommen habe. Mein Code sieht nun wie folgt aus:


mySelectQuery = "UPDATE xc001 SET xccmt=? WHERE xcprj='" + Projektname + "' AND xcver='" + Versionnummer + "' AND xctab='" + Tabellenname + "' AND xccol='" + SpaltenbezeichnungTextbox.Text + "'";
            myConnection = new OleDbConnection(sConnectionString);
            myConnection.Open();
            myCommand = new OleDbCommand(mySelectQuery, myConnection);

            myCommand.Parameters.Add("@xccmt", OleDbType.VarChar).Value = KommentarTextbox.Text.Trim();
            myCommand.Parameters.Add("@xcord", OleDbType.VarChar).Value = OrdinalnummerTextbox.Text.Trim();
            myCommand.Parameters.Add("@xcisp", OleDbType.Single).Value = isPrimary;
            myCommand.Parameters.Add("@xcish", OleDbType.Single).Value = isHistory;
            myCommand.Parameters.Add("@xcisi", OleDbType.Single).Value = isSQL;
            myCommand.Parameters.Add("@xcdtp", OleDbType.Single).Value = hatDatentyp;
            myCommand.Parameters.Add("@xccat", OleDbType.Single).Value = istKategorie;
            myCommand.Parameters.Add("@xcnuv", OleDbType.VarChar).Value = NULLErsatzwertTextbox.Text.Trim();
            myCommand.Parameters.Add("@xcmb1", OleDbType.VarChar).Value = "CA";
            myCommand.Parameters.Add("@xcdh1", OleDbType.Date).Value = DateTime.Now;

            bearbeitungErfolgreich = myCommand.ExecuteNonQuery();

           
            
            if (bearbeitungErfolgreich == 1)
            {
                MessageBox.Show("funzt");
            }
            else
            {
                MessageBox.Show("wot nid");
            }

@Kubi: Vielen Dank für deine Hilfe

Thema: update-query via oledb ausführen
Am im Forum: Datentechnologien

Wenn ich es ohne die Variabeln mache, habe ich das Problem, dass 140000 Zeilen ausgelesen werden.

Wie kann ich dann sicherstellen, dass es in der richtigen Zeile den Wert eingibt?

Wenn ich es mit meiner Spezifikation auslese, sollte nur eine Zeile ausgegeben werden.
Ich habe nun mein query mit AND xccmt = ? ergänzt und zusätzlich Command.ExecuteNonQuery() im Code eingefügt aber trotzdem wird keine Änderung vorgenommen.

Thema: update-query via oledb ausführen
Am im Forum: Datentechnologien

Also nochmal für die langsamen:

Ich lese alle Daten aus:


mySelectQuery = "SELECT * FROM xc001 WHERE xcprj = '" + Projektname + "' AND xcver='" + Versionnummer + "' AND xctab = '" + Tabellenname + "' AND xccol = '" + SpaltenDatenAnsicht.CurrentRow.Cells["Spalte"].Value + "'";
Danach stelle ich die Verbindung mit der DB her und lese die Daten aus:


myConnection = new OleDbConnection(sConnectionString);
myConnection.Open();
myCommand = new OleDbCommand(mySelectQuery, myConnection);
Danach möchte ich die Spalte xccmt bearbeiten


myCommand.Parameters.Add("@xccmt", OleDbType.VarChar, 150).Value = KommentarTextbox.Text;
Wenn ich es so mache wird gar nichts gemacht. muss ich mycommand noch den Befehl geben dies auszuführen?

Thema: update-query via oledb ausführen
Am im Forum: Datentechnologien

Hallo Kubi

Diese Art habe ich schon im Netz entdeckt aber ich bin mir nicht sicher, ob dies für mich das richtige ist. Ich möchte ja die bestehenden Werte überschreiben und nicht neu einfügen.

Thema: update-query via oledb ausführen
Am im Forum: Datentechnologien

verwendetes Datenbanksystem: Oracle 9i

Hallo zusammen

Ich schreibe ein Programm, welches Daten aus der DB via oledbdatareader ausliest. diese Daten kann ich dann verändern. Wenn ich auf den Speichern-Button drücke sollen die Änderungen in der DB gespeichert werden. Ich erstelle dafür den nötigen query.
Nun möchte ich, dass der query an die DB geschickt und ausgeführt wird. Ich habe im Netz nachgesehen und immer nur die Variante entdeckt, in der man mit einem DataAdapter Parameter hinzufügt.
Ich möchte aber mit meinem oledbcommand Objekt den query zurück geben. Ist dies nicht möglich oder mache ich einen Fehler?

Mein Code sieht so aus (query wurde bereits auf Korrektheit geprüft):


if (SpaltenDatenAnsicht.CurrentRow.Index == SpaltenDatenAnsicht.Rows.Count - 1)
            {
                mySelectQuery = "INSERT INTO xc001 (xcprj,xcver,xctab,xccol,xcord,xcisp,xcish,xcisi,xcdtp,xclen,xcscl,xcdef,xccmt,xcmb1,xcdh1,xccat,xcnuv) VALUES ('" + Projektname + "', '" + Versionnummer + "', '" + Tabellenname + "', '" + SpaltenbezeichnungTextbox.Text + "', '" + OrdinalnummerTextbox.Text + "','" + isPrimary + "', '" + isHistory + "', '" + isSQL + "', '" + hatDatentyp + "', '" + LängeTextbox.Text + "', '" + ScaleTextbox.Text + "', '" + DefaultValueTextbox.Text + "', '" + KommentarTextbox.Text + "', 'User', '" + DateTime.Now + "','" + istKategorie + "', '" + NULLErsatzwertTextbox.Text + ")";
            }
            else
            {
                mySelectQuery =  "UPDATE xc001 SET xcord='" + OrdinalnummerTextbox.Text + "', xcisp='" + isPrimary + "', xcish='" + isHistory + "', xcisi='" + isSQL + "', xcdtp='" + hatDatentyp + "', xccmt='" + KommentarTextbox.Text + "', xccat='" + istKategorie + "', xcnuv='" + NULLErsatzwertTextbox.Text + "', xcmb1='CA', xcdh1='" + DateTime.Now + "' WHERE xcprj='" + Projektname + "' AND xcver='" + Versionnummer + "' AND xctab='" + Tabellenname + "' AND xccol='" + SpaltenbezeichnungTextbox.Text + "'";
            }

            myConnection = new OleDbConnection(sConnectionString);
            myConnection.Open();
            myCommand = new OleDbCommand(mySelectQuery, myConnection);
            bearbeitungErfolgreich = myCommand.ExecuteNonQuery(); //Hier gibt es die Fehlermeldung

            if (bearbeitungErfolgreich == 0)
            {
                MessageBox.Show("funzt");
            }
            else
            {
                MessageBox.Show("ca ne veux pas");
            }
leider gibt es immer die Fehlermeldung: literal does not match format String

Thema: [erledigt] Treeview durchlaufen
Am im Forum: GUI: Windows-Forms

Hallo zusammen

Ich habe einen Treeview, welcher die Struktur einer Datenbank wiedergibt. die Struktur ist wie folgt:
Root -> Projekte -> Version -> Tabellen -> Spalten

Nun gibt es Tabellen, welche historisiert werden. Dazu wird eine weitere Tabelle erstellt. Diese hat den gleichen Namen wie die zu historisierende Tabelle, einfach mit dem Prefix HY.

Es wird gewünscht, dass diese Tabellen durch eine Checkbox ein- bzw. ausgeblendet werden können. Um dies zu realisieren möchte ich 2 foreach-Schlaufen erstellen. Die erste soll ein Knotenpunkt (eine Tabelle) auswählen. Danach soll in der 2. der Kotenpunkt mir jeder Tabelle verglichen werden, ob sie aus einem Tabellennamen und dem Prefix HY zusammengesetzt ist.
in etwa so:

von erster Tabelle bis zur lezter
      a = tabelle.name
      von erster Tabelle bis zur letzer
           b = tabelle.name
           wenn a = HY + b
               a.visible = false
            nächste Tabelle
      nächste Tabelle

Irgendwie stehe ich mir total auf der Leitung.
Ich habe schon etliche Versuche (mit for- und foreach-Schlaufen) in den Sand gesetzt und weiss nicht mehr weiter.


ps. entschuldigt den Pseudocode aber hoffe er erläutert wie ich es gemeint habe

Thema: TreeNode zu String suchen
Am im Forum: GUI: Windows-Forms

Diesen Weg habe ich auch schon ausprobiert. Das Problem dort war, dass es ein Array erstellt und wenn ich dann treeview.SelectedNode = a[0] eingebe, wird eine Index out of Range Exception geworfen.

Ich habe überprüft, ob der Name nach dem ich suche auch wirklich der Richtige ist und es hat gestummen. Also müsste es zumindest einen Node finden.

Thema: TreeNode zu String suchen
Am im Forum: GUI: Windows-Forms

Hallo zusammen

Ich habe einen Treeview der, je nach dem auf welcher Ebene man sich befindet, ein neues Usercontrol anzeigt.
In diesem Usercontrol befindet sich eine Tabelle mit den Details zu den ChildNodes des angewählten Node.
Nun möchte ich dem User die Möglichkeit bieten, mittels Doppelklick in der Tabelle ein bestimmtes Childnode anzuwählen.
Dies funktioniert eigentlich gut, jedoch wird der Treeview nicht aktualisiert.

Ich möchte dies mit dem Befehl treeview.SelectedNode machen, jedoch kann ich den Namen des ChildNode nur als String auslesen, da er aus der Tabelle stammt.

Kann mir jemand einen Tipp geben, wie ich trozdem das bestimmte Node auswählen kann?

Thema: [erledigt] Datagridview Combobox Wert auswählen
Am im Forum: GUI: Windows-Forms

Ich habe das Problem nun selber lösen können.

Mein Fehler war, dass ich die Werte als Items betrachtet habe.
Man kann ganz einfach einen String mit dem richtigen Wert mitgeben und dieser wird dann ausgewählt.

für mein Beispiel ging das so:


OracleTabelspace.Items.Add("small");
OracleTabelspace.Items.Add("large");
OracleTabelspace.Items.Add("middle");

while (myReader.Read())
{
        if (myReader[3].ToString() == "2")
                {
                    Grösse = "small";
                }
        TabellenDatenAnsicht.Rows.Add(myReader[0], History, myReader[2], Grösse, ExcludeFromCodeForge, ForgeAttributesClass, ForgeAttributeSetFunction, ForgeAttributeGetFunction, ForgeCopyWhenNotNull, myReader[9], myReader[10]);
} 

Sorry

Thema: [erledigt] Datagridview Combobox Wert auswählen
Am im Forum: GUI: Windows-Forms

Hallo zusammen

Ich lade Daten von einer Datenbank in ein Datagridview. Nun habe ich eine Spalte Grösse, welche 3 Werte enthält. (Gross, mittel, klein)
Diese Werte konnte ich ohne Probleme hinzufügen. Ich möchte aber, dass es immer gerade das richtige Item auch anzeigt.
Von der Datenbank erhalte ich die Werte 0-2. Nun schaffe ich es nicht, dass jeweils das richtige Item ausgewählt wird.
Ich habe es mit .Selected und .Items versucht bisher leider ohne Erfolg. Auch bei msdn habe ich nicht herausgefunden, wie dies geht (obwohl bis jetz die immer Infos zu Datagridview sehr hilfreich waren).

Irgendwie finde ich dies frustrierend, da dies doch eigentlich einfach sein sollte.

mein Code sieht in etwa so aus


OracleTabelspace.Items.Add("small");
OracleTabelspace.Items.Add("large");
OracleTabelspace.Items.Add("middle");

while (myReader.Read())
{
        if (myReader[3].ToString() == "2")
                {
                    //hier sollte das richtige Item ausgewählt werden
                }
        TabellenDatenAnsicht.Rows.Add(myReader[0], History, myReader[2], OracleTabelspace, ExcludeFromCodeForge, ForgeAttributesClass, ForgeAttributeSetFunction, ForgeAttributeGetFunction, ForgeCopyWhenNotNull, myReader[9], myReader[10]);
}

Kann mir jemand einen Tipp geben wie ich dies realisieren kann?

Thema: Daten aus DataGridView lesen
Am im Forum: Datentechnologien

Vielleicht liegt es daran, denn ich weis nicht genau wo ich dies machen muss.
Es ist jedoch so, dass VS die EventHandler erkennt (DataGridViewCellEventArgs, DataGridViewRowEventArgs) und im Code hervorhebt. Ausserdem müsste doch sonst eine Fehlermeldung erscheinen.

Oder habe ich das mit den EventHandler falsch vestanden?

Thema: Daten aus DataGridView lesen
Am im Forum: Datentechnologien

verwendetes Datenbanksystem: Oracle 9

Hallo zusammen

Ich habe in meinem Programm ein DataGridView erstellt, in welches ich von Hand Daten einlese. Ich mache dies von Hand, weil ich die Daten zuerst noch geringfügig bearbeiten muss.

Ich möchte, dass mein Programm zweigeteilt ist. das heisst, wenn ich eine Zeile auswähle, soll in der oberen Hälfte die Details angezeigt werden. Dafür brauche ich wieder Daten aus der angewählten Zeile.

Ich schaffe es aber nicht, dass die EventHandler funktionieren. Ich habe es mit SelectionChanged, RowClick, RowContentClick, CellClick und CellContentClick versucht. leider immer ohne Erfolg. Ich habe eigentlich das Gefühl, dass jeder Event hätte funktionieren müssen.

Weiss jemand wieso dies nicht der Fall ist?

zum besseren Verständnis poste ich noch ein Stück meines Codes


 private void SpaltenDatenAnsicht_SelectionChanged(object sender, DataGridViewCellEventArgs e)
        {
            DatenInFelderFüllen();
        }

        private void SpaltenDatenAnsicht_RowClick(object sender, DataGridViewRowEventArgs e)
        {
            DatenInFelderFüllen();
        }
        private void SpaltenDatenAnsicht_RowContentClick(object sender, DataGridViewRowEventArgs e)
        {
            DatenInFelderFüllen();
        }
        private void SpaltenDatenAnsicht_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {
            DatenInFelderFüllen();
        }

        private void SpaltenDatenAnsicht_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            DatenInFelderFüllen();
        }

        private void DatenInFelderFüllen()
        {
           // SpaltenbezeichnungTextbox.Text = SpaltenDatenAnsicht.CurrentRow.Cells["Spalte"].Value.ToString();
            SpaltenbezeichnungTextbox.Text = "test";

        }

Thema: Kommunikation zwischen Form und Usercontrol
Am im Forum: GUI: Windows-Forms

Ich habe nun die Lösung für mein Problem gefunden.

Am einfachsten und wohl auch am schönsten ist es, wenn man eine neue Methode erstellt, in welcher die Textbox ausgefüllt wird.


        private void Baumstruktur_AfterSelect(object sender, TreeViewEventArgs e)
        {

            if (e.Node.Level == 2)
            {
                tabellenAnsicht1.Visible = true;
                spaltenAnsicht1.Visible = false;
                tabellenAnsicht1.tabellenname = e.Node.Text;
                tabellenAnsicht1.TabellenAnsichtFelderFüllen();
            }

            if (e.Node.Level == 3)
            {
                tabellenAnsicht1.Visible = false;
                spaltenAnsicht1.Visible = true;
            }
            
        }
Danke für eure Hilfe

Thema: Kommunikation zwischen Form und Usercontrol
Am im Forum: GUI: Windows-Forms

Ich habe mir eure Vorschläge mal zu gemüte geführt.
Die Lösung von Khalid funktioniert ist aber wirklich nicht schön gelöst.

Wie das mit dem EventHandler geht ist mir noch nicht wirklich klar.
Ich werde nun mal nach weiteren Infos suche.

Vielen Dank für eure rasche Antwort

Thema: Kommunikation zwischen Form und Usercontrol
Am im Forum: GUI: Windows-Forms

Hallo zusammen

Ich schreibe gerade ein Programm, in welchem der Aufbau einer Datenbank dargestellt wird. Ich habe auf der linken Seite einen Treeview erstellt, welcher die Struktur darstellt. (Projekt -> Version -> Tabelle -> Spalte)
Je nachdem welches Level ich auswähle, wird ein bestimmtes Usercontrol geöffnet.
Dies funktioniert alles soweit.

Nun möchte ich, dass dem Usercontrol mitgegeben wird, wie z.B. die Tabelle heisst. Dafür habe ich im Usercontrol Properties erstellt. Damit ich testen kann, ob dieser Wert weitergegeben wird habe ich im Usercontrol eine Textbox erstellt.

Ich habe es aber bisher nicht geschafft, dass dieser Wert angezeigt wird.
Kann mir jemand einen Tipp geben, was ich falsch mache?


private void Baumstruktur_AfterSelect(object sender, TreeViewEventArgs e)
        {

            if (e.Node.Level == 2)
            {
                tabellenAnsicht1.Visible = true;
                tabellenAnsicht1.tabellenname = e.Node.Text;
            }
         }
Mit diesen Befehlen mache ich das Usercontrol sichtbar und gebe den Wert mit


    public partial class TabellenAnsicht : UserControl
    {
        private String Tabellenname;
        private String Versionsname;
        private String Projektname;
        public String tabellenname
        {
            get { return Tabellenname; }
            set {Tabellenname = value;}
        }
        public String versionsname
        {
            get { return Versionsname; }
            set {Versionsname = value;}
        }
        public String projektname 
        {
            get {return Projektname;}
         }
        public TabellenAnsicht()
        {
            InitializeComponent();
            textBox1.Text = Tabellenname;
           
        }
        private void textBox1_TextChanged(object sender, EventArgs e)
        {
           
        }
    }
Dies ist mein Usercontrol

Ich habe auch schon versucht die Textbox bei der Initialisation zu füllen. leider ohne Erfolg. Kann mir jemand einen Tipp geben?

Thema: Daten in einem tree darstellen
Am im Forum: Datentechnologien

verwendetes Datenbanksystem: Oracle

Hallo zusammen

ich starte mit einem neuen Projekt, in dem ich Daten aus einer Oracle-DB darstelle.
Nun habe ich mir überlegt auf der linken seite eine Baumstruktur analog zum Explorer in Windows zu erstellen damit die User (alle ohne db kenntnisse) besser zu den gewünschten Daten kommen.

Damit Ihr mich besser versteht versuche ich die Struktur zu erklären:
Ich habe 4 Tabellen.
In der ersten können Projekte ausgewählt werden.
wenn man ein Projekt ausgewählt hat kann man in der 2 Tabelle eine Version auswählen.
In der dritten Tabelle kann eine Tabelle ausgewählt werden und zuletz kann noch die Spalte ausgewählt werden.

ein ast könnte zum beispiel so aufgebaut sein:
Projekt1 -> Version 3.0 -> Personal -> Name
oder so
Projekt2 -> Version 0.1 -> Patienten -> Versicherungsnummer

hat jemand schon mal versucht so etwas zu erstellen?
wenn ja hat mir vielleicht jemand einen Tipp wie ich dies realisieren könnte?

Thema: Outlook-Kontakten Kategorie zuweisen
Am im Forum: Office-Technologien

Hallo zusammen

Ich möchte neue Kontakte über den Exchange Server erstellen. Ich kann den Kontakten alle Informationen ausser der Kategorie zuweisen.
Als Provider benutze ich ExOLEDB.

Zum besseren Verständnis poste ich hier einmal ein Beispiel:
um auf den Nachnamen zuzugreifen kann ich urn:schemas:contacts:sn eingeben

Ich bin nun aber seit mehr als 2 Wochen auf der Suche danach wie ich auf die Kategorie zugreifen kann. Leider ohne Erfolg.

Ich wäre unendlich dankbar wenn mir jemand den entscheidenden Tipp geben könnte.

Thema: Outlook - Adressbuch lesen
Am im Forum: Office-Technologien

hallo lilalaunebaer

ich habe ein Programm geschriebe, mit welchem ich über den Exchange server auf die Kontaktdaten in einem öffentlichen Ordner zugreife.
es gibt dafür mehrere Methoden. ich habe mich für ExOledb entschieden. es gibt aber auch WebDav etc.
ich poste mal meinen Code vielleicht kannst du ihn ja benützen


   string strSql;
        string sURL = "http://Servername/public/TestPublicFolder";
        ADODB.Connection oCn = new ADODB.Connection();
        ADODB.Recordset oRs = new ADODB.Recordset();
        ADODB.Fields oFields;
        ADODB.Field oField;
        oCn.Provider = "exoledb.datasource";
        oCn.Open(sURL, "Administrator", "agbadmin", 0);
        strSql = "";
        strSql = "select * from scope ('shallow traversal of " + "\"";
        strSql = strSql + sURL + "\"') WHERE \"DAV:ishidden\" = false AND \"DAV:isfolder\" = false";
        strSql = strSql + " ORDER BY \"urn:schemas:contacts:sn\" "; 


         oRs.Open(strSql, oCn,
                ADODB.CursorTypeEnum.adOpenStatic,
                ADODB.LockTypeEnum.adLockOptimistic, 1);
             
Damit solltest du zumindest auf die Daten zugreifen können

Siehe auch den Eintrag Multiple-step OLE DB operation generated errors