Laden...
A
a957m myCSharp.de - Member
Dipl. Ing. Informationstechnik Stuttgart Dabei seit 20.05.2007 254 Beiträge
Benutzerbeschreibung
Ich habe ca. vor einem Halben Jahr begonnen mich mit C# zu beschäftigen. Folgende Themen habe ich mir schon angeignet Windows Forms, Datenbankprogrammierung

Forenbeiträge von a957m Ingesamt 254 Beiträge

21.11.2007 - 09:36 Uhr

Hallo,

verstehe ich nicht ganz.

Wenn Dein Statement funktionert, hast Du doch was Du wolltest. null ist ja nichts.

Wobei das im Widerspruch zu Deinem Constraint steht. Somit musst Du die Spalte ja immer über die Anwendung füllen. Was passiert denn wenn Du einen Datensatz mit einem null-Value in der betroffenen Spalte einfügtst ?

Tschüss

20.11.2007 - 20:29 Uhr

Hi,

verstehe die Frage nicht ganz. Warum sollte es nicht möglich sein das Ergebnis nicht sortiert auszugeben (wie mit Deinem Select)

Ob ab- oder áufsteigend kannst Du ja noch mit angeben. Wobei der default eh aufsteigend ist ?

Tschüss

18.11.2007 - 21:35 Uhr

Also ich habe rausgefunden, wie es in Oracle theoretisch gehen würde :

select oid, parentid
from XBAUM
start with = '4##3434###3asd'
connect by prior parentid = id;

Leider funktioniert es in diesem Fall nicht.

Ich bekomme die Oracle Meldung ORA-01472. Hintergrund XBAUM ist eine View die mit Union die Inhalte mehrere Tabellen vereinigt.

Bei anderen Anwendungsfällen tut das connect by hervoragend.

18.11.2007 - 14:20 Uhr

verwendetes Datenbanksystem: Oracle

Meine Anwendung verwaltet Dokumente. Diese Dokumente sind über einen Baum, wie Explorer, eingeordnet.

Der Baum ist in einer Tabelle abgelegt. Dabei hat jeder Baumeintrag eine ID. Über die parentid, wird der darüberliegende Eintrag referenziert.

Der Baum kann unterschiedlich Tief geschachtelt sein.

Wie kann ich mir mit einem Select den kompletten Pfad ausgeben lassen ?

Jemand eine Idee ? Muss schätzungsweise irgendwie rekursiv sein.

Vielen Dank

04.11.2007 - 18:33 Uhr

Hallo,

ich hab das Studio auch unter VISTA am Laufen und es tut auch so halbwegs.

Ich habe SP1 und einen Upgrade für VISTA nach der Installation des VS2005 aufgespielt.

Sollte von folgender Seite downloadbar sein :

http://www.microsoft.com/germany/msdn/downloads/default.mspx

Probiers doch einfach mal. Wie schon gesagt bei mir hat's geklappt.

Tschüss

04.11.2007 - 17:31 Uhr

Hallo,

ist nur auf der Professional Version enthalten.

Tschüss

03.11.2007 - 21:24 Uhr

Hallo,

ich habe gerade ein Problem bei dem, mir gerade die zündende Idee fehlt.

In meinem Programm lade ich Daten von der Datenbank in fachliche Objekte. Die Klassen der Objekte haben alle die gleiche Basisklasse. Nun brauche ich eine Container Klasse, in der ich die Objekte einer fachlichen Klasse halte. Die Container Klasse, muss die Daten von der Datenbank laden, dafür muss ich abhängig vom Typ das richtige Select Statement ausführen. Anschliessend muss ich noch die Objekte des richtigen Typ's instanzieren. Der Konstruktor des fachlichen Datenobjektes bekommt über einen DataTable seine Daten.

Hat jemand eine Idee, wie ich dem Container sagen könnte, welche Klasse er beinhaltet und wie er die Objekte aus der Datenbank holen kann.

Eine Idee wäre ja für die Datenobjekte eine statische Methode zu implementieren, die die Daten von der Datenbank holt. Aber dazu bräuchte ich ja eine Art Verberbung von statischen Methoden und das gibt's ja nicht.

Falls jemand eine Idee hat, wäre ich echt dankbar.

Wie ich gerade eben in einem anderen Thread gelesen habe, ist das Konzept einer Zwischenschicht über den Dataset/DataTable nicht unüblich.

Vielen Dank

31.10.2007 - 18:19 Uhr

Hi,

ich denke per ODBC sollte die Verbindung auf jedenfall möglich sein. Es gibt einen Microsoft ODBC Treiber für Oracle. Der sollte auf jedem Rechner installiert sein. Notfalls MDAC installieren.

Tschüss

29.10.2007 - 20:12 Uhr

Hi,

Du musst die Zeile

cDaten daten = new cDaten();

innerhalb der while Schleife machen. Damit erstellst Du ein neues Objekt. Ansonsten fügst Du wie gesagt immer eine Referenz auf das gleiche Objekt zu der Liste hinzu.

Tschüss

29.10.2007 - 17:08 Uhr

Hallo Community,

wie bekome ich den Name des am Betriebssystem angemeldeten Benutzers heraus ? (Wenn möglich mit Domäne)

Hat jemand eine Ahnung ?

Danke

29.10.2007 - 12:13 Uhr

Hi,

der Schlüssel Rechner und User wäre sicher eindeutig.

USER | RECHNER

NULL | RN
US | NULL
US | RN

Mein Problem ist ja gerade, dass wohl kein Datenbanksystem ein null Value im PK akzeptiert. Wenn das DBS so was täte, wäre ja auch ein NULL, NULL Kombination für das DBS gültig. Dies will ich ja aber auch nicht.

Die Idee mit dem Flag ist gut Ich werde das Flag abspeichern und in einem Text-Feld, die Kombination der Werte ablegen. Als PK nehm ich dann Flag und Text-Feld, damit kann ich auch geschickt selektieren.

Danke für die Anregung.

29.10.2007 - 11:28 Uhr

verwendetes Datenbanksystem: ACCESS

Hallo Community,

folgendes Problem. Meine Anwendung soll kritische Fehler in der Anwendungsdatenbank protokollieren. Den Log-Level will ich entweder auf Rechner-Ebene bzw. User - Ebene setzen können bzw. als Kombination von beidem.

Priorität :
Ist kein Eintrag für Rechner / User vorhanden,
nimm User, ist kein Eintrag für User vorhanden,
nimm Rechner, ist kein Eintrag für Rechner vorhanden,
nimm default.

Diesen Loglevel leg ich in einer Datenbank-Tabelle ab. Dabei habe ich jetzt das Problem dass der Primär Schlüssel zusammengesetzt aus User und Rechner ist. Beides kann aber Null Values enthalten.

Wie macht man sowas ?

Danke für Eure Unterstützung.

Tschüss

23.10.2007 - 10:55 Uhr

Hi,

danke für die schnelle Unterstützung. Die Lösung mit em struct gefällt mir.

Tschüss

23.10.2007 - 10:46 Uhr

Hallo Community,

habe folgendes Problem.

Ich brauche ein Hastable in dem ich über eine Schlüsselkombination eine Objektreferenz holen kann.

Quasi so was :

Dictionary<string, int, object>

Wie macht man sowas ?

Tschüss und Danke

19.10.2007 - 21:25 Uhr

Hi,

die Tatsache, dass es keinen paramterlosen Konstruktor gibt, liegt wohl daran, dass ein String unveränderlich ist. D.h. wird eine Änderung an einem String vorgenommenn, wird ein neuer String erzeugt. So gesehen macht ein leerer String keinen Sinn.

Tschüss

19.10.2007 - 13:54 Uhr

Hi,

ich denke der HRESULT besagt, dass nicht genügend Speicher allokiert werden kann, warum dies aber innerhalb des IIS nicht funktionieren soll, kann ich Dir auch nicht sagen.

Tschüss

16.10.2007 - 20:43 Uhr

Hi,

noch zu dem Thema Sequenz Tabelle :

Das Abrufen und Inkrementieren des Sequenz-Wertes muss in einer Transaktion ablaufen, die keinem anderen das Ändern des Wertes erlaubt.

16.10.2007 - 14:06 Uhr

Hallo,

das Problem verstehe ich.

Wenn die Datenbank keine Autowerte bzw. Sequences unterstützt. Kann man diese selber implementieren.

Dabei kann man eine Tabelle Seq anlegen. Die den Namen der Sequenz und den aktuellen Wert der Sequenz enthält. Braucht man eine neue ID fragt man den aktuellen Wert der Sequenz ab und erhöht diesen um eins. Dies muss unbeding transaktionsicher ablaufen.

Tschüss

16.10.2007 - 12:49 Uhr

Hi,

so vielleicht ?

class Program
    {
        private static List<List<int>> liste_in_liste;

        static void Main(string[] args)
        {
            liste_in_liste = new List<List<int>>();
            List<int> l1 = new List<int>();
            l1.Add(1);
            l1.Add(2);

            liste_in_liste.Add(l1);
        }
    }

Für was brauchst Du den sowas ? Mir ist es schon öfter passiert, dass ich einen Hashtable mit Listen als Value gebraucht habe.

Tschüss

16.10.2007 - 09:43 Uhr

Hi,

die Klasse muss nicht unbedingt Programm heissen. Die Signature der Main Methode mussa allerdings so sein wie sie ist.

Die Main Methode muss als static definiert sein, weil sie ja bereits vorhanden sein muss, wenn die Ausführung des Programms beginnt. Deshalb muss sie unabhängig von einer Objekt-Instanz sein, die ja zu nächst erstellt werden müsste.

Andere Mehoden in der Klasse könnten auch nicht static sein, was aber wahrscheinlich keine Sinn macht. Erstell lieber ein separate Klasse, die Du dann instanzieren kannst.

Tschüss

15.10.2007 - 20:52 Uhr

Hi,

fehlt hier nicht die Bedingungen für den Join der einzelnen Tabellen ?

Tschüss

15.10.2007 - 10:19 Uhr

Hi,

Probleme gibt es höchstens mit der Performace. Es ist aufwendiger ständig einen neuen Thread zu erzeugen, als diesen anzuhalten.

Tschüss

15.10.2007 - 09:49 Uhr

Hallo Community,

mal wieder das leidige Thema Logging ...

Ich will beim Loggen von Ereignissen, zusätzliche Daten erfassen (z.B. User, Rechner usw.) dies soll dann in der Datenbank in unterschiedlichen Spalten landen.

Geht mit log4net soetwas ?

Ist es überhaupt sinnvoll solch ein mächtiges Framework für eine Client Anwendung einzusetzen, oder braucht man soetwas nur bei Server-Anwendungen, bei denen die Fehleranalyse bekanntlich doch etwas komplizierter ist.

Bin für jede Anregung dankbar.

Tschüss

12.10.2007 - 14:16 Uhr

Hallo,

hab mir ein Beispiel-Projekt aus dem Internet heruntergeladen und in mein Entwicklungsordner kopiert.

Beim Öffnen des Projektes mit VS2005 SP1 kommt die Fehlermeldung, dass der Projektspeicherort nicht vertrauenswürdig ist. (Windows Vista).

Wie kann ich meinem Rechner klar machen, dass ich den Sourcen nichts böses zu traue.

Danke

09.10.2007 - 14:09 Uhr

Hi,

die Fehlermeldung sagt, dass Deinem Programm nicht klar ist, was die Schlüsselbegriffe sind, die die den jeweiligen Datensatz der gelöscht bzw. geändert werden soll eindeutig identifiziert.

Ich denke, eine Lösung wäre die Eigenschaft UpdateCommand mit dem jeweiligen Statement, das für das Ändern nötig ist, zu setzen. Für das Löschen (DeleteCommand) setzen.

Tschüss

08.10.2007 - 09:52 Uhr

Hi,

warum machst Du solche Dinge nicht als Stored Procedure auf der Datenbank ?

04.10.2007 - 10:49 Uhr

Hi,

die Programmiersprache der Wahl in diesem Umfeld ist in der Regel immer noch C. Die richtigen Hardware-Freak's programmieren auch immer noch gern mit Assembler.

Das von mir vorgeschlagene Entwicklungsboard STK500, kann man fast alle Atmel AVR Chips programmieren. Da gibt's auch welche im praktischen DIL Gehäuse, die nicht soviel Feinmotorik verlangen.

Die von Dir angepsrochene Steuerung und der Anschluss der Sensoren und Aktoren sollte für so einen Chip kein Problem sein. Vorausgesetzt sind natürlich Elektrotechnische Kentnisse. Wie willst Du den Motor des Rollos ansteuern ?

Gibt es da schon etwas ?

Tschüss

03.10.2007 - 13:02 Uhr

Hi,

ich arbeite mit ATMEL Micro-Controller. Ich würde Dir für den Beginng das Entwicklungsboard STK500 von Atmel empfehlen.

Tschüss

23.09.2007 - 14:08 Uhr

Hi pkoeppe,

beim downloaden erscheint ein Login-Dialog, an dem ich nicht vorbei komm.

Ist vielleicht doch nicht frei ?

21.09.2007 - 10:50 Uhr

Hi,

Zwischenfrage:

Sieht die besagten Application Blocks für jeden nutzbar ? Oder müssen diese zusätzlich gekauft werden. Wie komm ich dran ?

Vielen Dank und Sorry für die Unterbrechung der Diskussion.

10.09.2007 - 20:43 Uhr

Hi,

das Problem hab ich auch. Bei mir tritt es allerdings auch bei anderen Applikationen auf (und unter VISTA). Was kommt den als Fehlerursache in Frage ?

Danke

06.09.2007 - 14:33 Uhr

Hallo,

muss weg. Deshalb in aller kürze.

Dursuch doch die Liste mit Verbindungs-Objekten und Vergleich den string, der Eigenschaft Endbutton mit eingang.Text. Wenn gleich, hast Du das richtige Objekt gefunden und kannst die restlichen Eigenschaften (StartpointX, StartpointY ...) auslesen.

Schau heute abend nochmal rein ...

06.09.2007 - 13:45 Uhr

Hi,

immer die Verständigungsprobleme...

Ich verstehe Deine Fragen auch nicht so recht. Noch ein Vesuch ...

Du hast nun eine Liste von Verbindungs-Objekten und kannst über die Liste auf jedes einzelne Objekt zugreifen. Wenn Du nun auf ein Objekt zugreifst, kannst Du doch auf alle Daten des einen Objektes zugreifen (StartPointX, StartPointY ...).

Damit bekommst Du doch immer den richtigen StartPointY, wenn Du auf das gleiche Verbindungs-Objekt zurgeifst.

Falls wir uns immer noch nicht verstehen, dann poste doch den bestehenden Code und beschreib kurz, was du codieren willst. Dann könnte ich Dir einen Vorschlag machen wie ich es machen würde. Code sagt manchmal mehr als 1000 Worte...

Tschüss

06.09.2007 - 11:25 Uhr

Hi,

mit dem Ansatz gebe ich Dir recht, es bleibt Dir nichts übrig über alle Elemente zu iterieren, um den gewünschten startpointX herauszufinden, danach hast Du ja eine Referenz auf das verbindungs-Objekt und die dazugehörigen Daten.

Versteh gerade irgendetwas nicht ?

Tschü

06.09.2007 - 10:36 Uhr

Hi,

Du kannst auch über XML Serialisierung die Datei wieder einlesen.

Hier ein Beipsiel aus einem Projekt von mir.

 public void Load(string _datei)
        {
            try
            {
                XmlSerializer xml = new XmlSerializer(typeof(layAnsichten));
                FileStream file = new FileStream(_datei, FileMode.Open);
                m_ansichten = (layAnsichten)xml.Deserialize(file);
                file.Close();
            }
            catch (Exception ex)
            {
                throw new layKonfigException(0, _datei, ex);
            }
        }

Danach ist Deine Datenstruktur wieder im Speicher und Du kannst über das WurzelElement in meinem m_ansicht über die untergeordneten Objekte zugreifen.

Tschüss

05.09.2007 - 11:46 Uhr

Hallo,

es gibt auf www.sysinternals.com ein Tool mit Namen RegMon. Damit kannst Du einem Prozess auf die Finger schauen, was er alles in die Registry schreibt. Damit solltest Du beim Registrieren herausbekommen, wo überall geschrieben wird.

Tschüss

05.09.2007 - 11:09 Uhr

verwendetes Datenbanksystem : MS SQL

Hallo,

kann mir jemand dies von Oracle in MS-SQL übersetzen.

update auftrag set datum = to_date(add_years(datum,-100));

Damit sollen alle Jahreszahlen um 100 Jahre verkleinert werden. Wie kann ich sowas in MS-SQL Syntax machen?

Tschüss

05.09.2007 - 11:01 Uhr

Hi,

was heisst manuell ? Beim Aufruf von regsvr32, wird ja nichts anderes gemacht, wie die COM dll geladen und eine definierte Funktion aufgerufen, die die Einträge in der Registry vornimmt.

Tschüss

03.09.2007 - 15:11 Uhr

Hallo,

Du solltest die Vebindungs-Objekte in einem Container (List<verbindung>) in der VerbindungsXML Klasse verwalten.

Tschüss

28.08.2007 - 13:51 Uhr

Hi,

was spricht gegen ein Scrollbar ?

Tschüss

27.08.2007 - 16:13 Uhr

wenn Du die Methoden in der Basisklasse mit virtual deklarierst und die Methode in der abgeleiteten Klasse mit override deklarierst, wird die Methode der abgeleiteten Klasse ausgeführt. Innerhalb dieser kannst Du die Methode der Basisklasse mit base aufrufen.

27.08.2007 - 15:44 Uhr

Hallo Zebes,

diese Probleme hatte ich auch und bin fast verzweifelt. Jedesmal wenn ich das Studio neugestartet habe war das Problem behoben. Ich habe das ein oder andere Problem darauf zurück geführt, dass ich im Konstruktor der Form, Sachen gemacht habe die zur Design Zeit nicht ungebdingt Sinn machen ( z.B. Datenbank geöffnet, auf Datei oder serielle Schnittstelle zugegriffen).

Mein Tipp ist es den Default Konstruktor der Form möglichst schlank zu halten und keine Dinge zu tun, die nicht direkt mit der Darstellung zu tun haben.

Falls Du Dein Problem behoben hast, wäre es klasse, wenn Du posten könntest, woran sich der Designer verschluckt hat.

Tschüss

27.08.2007 - 15:38 Uhr

Hi,

danke für die Ideensammlung. Momentan mache ich es so, dass ich eine Methode (FormState) habe mit der ich die Enabled Eigenschaft des jeweiligen Controls setze.

Hat zur Folge, dass ich diese Methode eigentlich in jedem Event-Handler aufrufe.

Das Thema mit dem Binding gefällt mir recht gut. Aber die Methode für die Ermittlung des Wertes für die bool-Variable brauche ich trotzdem ...

Ausser ich definiere für Member-Variablen, die den Zustand meiner Form beeinflussen (dargestelltes Dokument, Privilegien des Benutzers) ein Property und setze die jeweiligen bool Variablen beim Set.

Das wäe jetzt aus meiner Sicht die beste Lösung (nach dem ich Eure Anregungen durchgeschaut habe).

Da dies ein Standard-Problem ist, dass bei mir in jedem Dialog zu bewältigen ist, will ich mir eine einheitliche Strategie zu recht legen.

Tschüss

P.S. : Falls ich ab und an einen Buchstabendreher drin habe, bitte ich Euch dies nicht als Geringschätzung Euch gegenüber zu verstehen. Es ist einfach so, dass mein Hirn schneller diktiert als meine Finger schreiben können. Und beim Durchlesen sehe ich immer nur den Text den ich schreben wollte und nicht den Mist der beim Tippen rausgekommen ist.

27.08.2007 - 14:13 Uhr

Hallo,

habe ein kleines Problem. Ich muss zuviel tippen ...

Ich habe ein Dialog mit sehr viele Controls, abhängig von verschiedenen Zuständen der Anwendung, sollen die Controls enabled true/false sein.

Nun habe ich eine bool Variable über die ich die Enabled Eigenschaft vieler Controls steuern könnte. Gibt es eine Möglichkeit die Enabled Eigeschaft der jeweiligen Controls an diese Variable "zu binden" ?

Oder wie löst Ihr das Problem in Euren Anwendungen ?

Danke für Eure Unterstützung.

Tschüss

27.08.2007 - 14:07 Uhr

mehrere Konstruktoren. Der Designer braucht immer einen Paramterelosen, indem IntializeComponents aufgerufen wird.

27.08.2007 - 14:02 Uhr

Hallo,

hast Du dem Konstruktor irgendwelche Parameter spendiert ? Der Designer braucht einen Paramterlosen Konstruktior.

Tschüss

27.08.2007 - 13:34 Uhr

Hi,

Ich habe eine Basisklasse, von welcher ich beispielsweise 4 Klassen ableite.
Ist es nun möglich, eine Objektliste vom Typ der Basisklasse zu erstellen und dieser trotzdem Instanzan der abgeleiteten Klassen zuzuweisen

Ja.

Grift man nun auf ein Objekt aus der Liste zu, stellt die aber nur die Methoden und Eigenschaften zur Verfügung, die in der Basisklasse deklariert sind. Ansonsten ist ein Cast notwendig.

Tschüss

27.08.2007 - 13:31 Uhr

Hi,

da Performance Gesichtspunkte keine Rolle spielen dürften, sollte es ziemlich egal sein, welchen Container Du benutzt. Ich würde eine Person-Klasse implementieren, die den Namen und den Geburstag enthält. Diese Person Objekte würde ich einer Liste verwalten und einfach über die Liste iterieren, um den nächsten zu finden.

Tschüss

23.08.2007 - 21:15 Uhr

Hallo,

wies ieht es denn aus. Ist die Methode WriteConfigFile für die beiden gleich. Oder sind diese komplett unterschiedlich. Wenn diese sich stark unterscheiden, spricht doch viel dafür diese Methoden jeweils in den Klassen RouterSettings und ProgrammSettings mitaufzunehmen. Vielliecht ist es noch geschickt ein Interface IConfigurable zu machen, dass die zwei Methoden beinhaltet und von Deinen Setting klassen implementiert wird.

Die Lösung mit dem leeren Interface vertstehe ich übrigens nicht.

Tschüss

20.08.2007 - 11:37 Uhr

Hallo,

die einfachste Lösung, aber sicher nicht die komfortabelste, ist eine Ausgabe der Daten in Excel oder Word. Dann kann der Anwender in einem Programm, das im meist er kennt, seine Vorlagen zusammenbasteln.

Tschüss