Laden...
N
Benutzerbeschreibung

Forenbeiträge von Nergal Ingesamt 59 Beiträge

09.12.2009 - 16:56 Uhr

verwendetes Datenbanksystem: MS SQL 2005

Hi,

ich habe zwei Tabellen, die wie folgt aufgebaut sind:

A:
ID<int>
Name<varchar>

B:
ID<int>
KeyName<varchar>
Value<varchar>

A.ID ist der PrimaryKey von A.
B.ID ist ein ForeignKey auf A.ID.
B.ID und B.KeyName sind die PrimaryKeys von B.

Und nun zu meinem Problem: Wie mappe ich das?!

Momentan sieht das Mapping so aus


Id(x => x.Id);
Map(x => x.Name);


 CompositeId()
                .KeyProperty(x => x.Id)
                .KeyProperty(x => x.KeyName);
Map(x => x.Value).Not.Nullable();

ID ist noch nicht als ForeignKey eingetragen, da es schon bei den beiden PKs knallt.
Und zwar bekomme ich den Fehler:
NHibernate.MappingException: composite-id class must override GetHashCode(): Namespace.B

Die Methoden sind aber in B implementiert.


        public bool Equals(CommonMappingItem other)
        {
            ...
        }

        public override bool Equals(object obj)
        {
           ...
        }

        public override int GetHashCode()
        {
            ...
        }


Evtl. hab ich ja auch den komplett falschen Ansatz. Da ich auch nach langer Recherche keine wirkliche Hilfe gefunden habe, hoffe ich, daß ihr mir helfen könnt.

Gruß und Danke
Nergal

10.11.2009 - 17:44 Uhr

Hallo,

ich habe ein Window und möchte die Aktionen, die beim Loaded- und Closing-Event ausgeführt werden sollen im ViewModel definieren. Weiß allerdings nicht wie.

Wenn ich z.B. Events auf Buttons legen will habe ich das über eine RelayCommand-Klasse gemacht. Bei Loaded und Closing komme ich damit aber irgendwie nicht weiter 😕

Bin dankbar für jede Art von Hilfe.

Gruß
Nergal

10.11.2009 - 17:34 Uhr

Danke, da hät ich auch selber drauf kommen können 😉

09.11.2009 - 15:06 Uhr

Hallo,

ich habe ein Fenster mit einer Menüleiste. In dem Viewmodel des Fensters möchte ich der Menüleiste neue Einträge mit jeweils einem Clicked-Event hinzufügen.
Im Codebehind der XAML geht das ja auch ohne Probleme, im Viewmodel kann ich die Menüleiste aber nicht ansprechen. Klar, die Referenz ist nicht bekannt.

Habe gerade erst mit WPF angefangen und meine C# Kenntnisse stecken auch noch in den Kinderschuhen. Deswegen bin ich für jede Hilfe dankbar.

Gruß und danke
Nergal

25.09.2009 - 15:17 Uhr

Hi

ich glaub, er meint das dynamische Anpassen der Schriftgröße. Das würde mich auch interessieren.
Bisher habe ich die Auflösung ausgelesen und dazu einen raltiven Wert genommen.
Welche Zoom-Funktion ist den gemeint @ BerndFfm?

Grüßle
Jéré

Genau das brauche ich. Irgendetwas, daß mir bei einer Größenänderung des Fensters die Schriftgröße der Label sowie das Label selbst automatisch anpaßt; horizontal und vertikal.

Gruß
Nergal

25.09.2009 - 13:37 Uhr

Also im Prinzip nichts anderes als der row/columnspan bei HTML-Tabellen. Da hatte ich ja noch garnicht dran gedacht. Danke für den Tip.

Nun fehlt mir nur noch die Möglichkeit die Schriftgröße der Labels zu ändern.

Danke
Nergal

25.09.2009 - 13:06 Uhr

Hi,

ich habe gerade mit WPF angefangen und stehe schon vor dem ersten Problem.
Ich möchte eine Eingabemaske bauen, die sich an die Größe des Fensters anpaßt; sowohl vertikal als auch horizontal. Alle Elemente sollen dabei ihre Größe ändern wenn sich die Fenstergröße verändert; auch die Texte der Label.

Wenn ich mit einem Grid arbeite ist die horizontale Anpassung der Eingabefelder kein Problem. Da die Felder aber alle unterschiedliche Grundgrößen haben und ich keine einfache Tabellenstruktur verwenden kann, habe ich an ein Canvas gedacht. Nur wie bekomme ich dort die gewollte Größenänderung hin?

Anbei eine Skizze, die verdeutlichen soll, wie das später aussehen sollte.

Gruß und Danke
Nergal

21.08.2009 - 15:02 Uhr

verwendetes Datenbanksystem: MS SQL

Hallo,

ich habe seit einem knappen Jahr kein C# mehr programmiert und habe eine, wahrscheinlich sehr einfache, Frage:

Ich möchte Daten aus einer MS SQL Datenbank lesen und sie in eine DataTable oder ein DataGridView laden und anzeigen.

Wie mache ich das am einfachsten und sinnvollsten?
Über z.B. eine Singleton Klasse die den Datenbankzugriff steuert und in der die Abfragen von mir eingegeben werden oder über die vom Studio mitgelieferten Möglichkeiten?
Wo sind die Vor- und Nachteile?

Gruß und Danke
Nergal

28.06.2009 - 14:47 Uhr

Nutze die Professional Edition, da sollte das doch eigendlich enthalten sein?

28.06.2009 - 14:46 Uhr

Muss dann nicht zumindest die Jet-Engine auf dem Rechner installiert sein? Wenn ja: Gibt es die denn kostenfrei?

Die Tabellen an sich sind nicht kompliziert, aber sie können viele Daten enthalten. Deswegen wollte ich nicht auf ein DataSet zurückgreifen.

28.06.2009 - 13:59 Uhr

Hallo,

ich benötige für eine kleinere Applikation eine relationale Datenbank. Diese Datenbank muss kein PL/SQL, Trigger, Functions, etc. unterstützen.
Access kommt nicht in Frage, da die Applikation auf mehreren Rechnern laufen soll und nicht auf allen Access installiert ist.

Soweit ich weiß bietet SQLite die Möglichkeit eine Datenbank ohne Installation aufzusetzen. Liege ich da richtig?

Hat jemand Erfahrung mit SQLite oder anderen Datenbanken, die meine Anforderungen erfüllen?

Gruß und danke
Nergal

28.06.2009 - 12:49 Uhr

Hallo,

habe noch einige Fragen zu den Microsoft-Berichten:
Muss ich beim Erstellen der rdlc-Datei zwingend eine Datenquelle eingeben?

Ich würde die Daten gerne per Hand aus der Datenquelle holen und sie dann an das Bericht-Template übergeben um den Bericht erst anzuzeigen und ihn dann ggf. als speichern zu können (z.B. als .pdf).

Nutze Visual Studio 08. Allerdings finde ich da nichtmal ein Steuerelement, daß mir den Bericht anzeigen kann (ReportViewer ist nicht vorhanden).

Gruß
Nergal

26.06.2009 - 22:07 Uhr

Danke für die Tips.

Da ich die Berichtgenerierung als Erweiterung zu einer bestehenden Applikation hinzufüge, gefällt mir der Vorschlag von Rainbird im Moment am besten.

Gruß
Nergal

25.06.2009 - 20:23 Uhr

Hallo,

ich möchte für einen Bekannten ein kleines Tool schreiben, welches Rechnungen generiert. Diese Rechnungen können beliebig viele Positionen beinhalten und sollen nach Möglichkeit Worddokumente sein.

Ich bin nicht mehr ganz auf dem laufenden was mit Word alles möglich ist.
Kann ich mit Word (z.B. den XML-Formaten) solche Worddokumente generieren oder benötige ich dafür Wordtemplates?
Wie komplex ist das Ganze?
Bietet es sich an auf eine andere Technik zurückzugreifen?

Gruß und Danke
Nergal

15.09.2008 - 12:38 Uhr

Danke für die Hilfe. Dann werde ich mal die Datenbankklassen anpassen 😉

15.09.2008 - 12:21 Uhr
        
        public int ExecuteCommand(String sql)
        {
            int rowsAffected = 0;
            try
            {
                SqlCommand cmd = new SqlCommand(sql, sqlConnection);
                rowsAffected = cmd.ExecuteNonQuery();
            }
            catch (SqlException e)
            {
                Errorlogging.Singleton.Errormessage("Error in ExecuteCommand", false, true);
            }

            return rowsAffected;
        }

Ein ganz einfacher Insert zum testen (für das Einfügen der aktuellen Zeit).
Es wird aber weder ein Eintrag hinzugefügt noch kommt er ins Catch.
Der Insertbefehl für eine EMail aus Outlook wäre mehrere Seiten lang, da er eine Methode benutzt, die mit Parametern arbeitet und die Spaltenanzahl, den Spaltentyp aus der Datenbank ermittelt (hat aber zuvor auch mehrere Einzeltests bestanden).

Der Connection String wird einmal beim Programmstart aus einer Config gelesen und bleibt dann konstant.

Die Fehler treten immer beim Datenbankzugriff auf, allerdings bei unterschiedlichen Methoden. Das Resultat ist immer das gleiche: der Service funktioniert nicht mehr korrekt bzw. schmirrt ab.

Das es sich um mehrere tausend EMails handelt, die beim Start in die Datenbank geschrieben werden, sollte doch normalerweise kein Problem sein. Zumindest war es das nicht, als der Service noch als normales Tool getestet wurde 😠

Wie wurde man den Zugriff den Threadsicher bekommen?

15.09.2008 - 10:31 Uhr

Zwei Datenbanken, auf eine wird nur lesend und auf die Andere lesend und schreibend zugegriffen.

Das Ganze ist etwas komplexer. Wir haben das Programm im Moment so gekürzt, daß nur noch die Grundfunktionen ausgeführt werden. Diese beinhalten im Endeffekt zwei Funktionen:

Ein Thread schreibt per Timer in eine der zwei Datenbanken alle 10 Minuten die aktuelle Zeit, quasi als Rückmeldung, daß der Service noch läuft.

Der andere Thread fügt anfangs permanent Daten in die die gleiche Datenbank (EMails aus Outlook).

        

private static Database singleton = null;
private SqlConnection sqlConnection;


        private Database ()
        {
            try
            {
                sqlConnection = new System.Data.SqlClient.SqlConnection();
                sqlConnection.ConnectionString = ".....";
                sqlConnection.FireInfoMessageEventOnUserErrors = false;
                sqlConnection.Open();
            }
            catch (SqlException e)
            {
                Errorlogging.Singleton.Errormessage("A connection to the Database  cannot be established.", false, true);
            }
        }


        public static Database Singleton
        {
            get
            {
                if (singleton == null)
                    singleton = new Database ();

                return singleton;
            }
        }

Also wird es wahrscheinlich am Singleton liegen?
Wir haben in jeder Methode, die Lesend und Schreibend auf die Datenbank zugreift im Catch eine Fehlerausgabe in einer Datei. Diese wird aber auch nicht immer gesetzt. Das heißt, die Methoden müßten richtig ausgeführt werden.

15.09.2008 - 09:31 Uhr

verwendetes Datenbanksystem: MS SQL

Hallo,

ich habe ein Problem mit einem Service, der lesend und schreiben auf zwei Datenbanken zugreift.
Der Service hat u.a. drei Timer, die alle über ein Singleton auf die beiden Datenbanken zugreifen.
Allerdings gibt es immer wieder Fehler bei den Datenbankzugriffen, die nicht nachvollziehbar sind; teilweise schon beim Updaten eines Wertes.

Meine Frage: Gibt es generell Probleme beim Datenbankzugriff über einen Service, die bei normalen Anwendungen nicht auftreten?

12.08.2008 - 13:53 Uhr

Wieso bin ich da eigendlich nicht selbst draufgekommen, danke 😉

12.08.2008 - 13:37 Uhr

Es sollte so nah wie möglich am Minutenwechsel passieren, ein paar Sekunden Spiel sind verkraftbar.

Es geht darum, daß der Benutzer eine Mitteilung bekommt wenn ein DateTime Objekt paßt. Ist eine Art Terminplaner.

12.08.2008 - 13:30 Uhr

Gibt es dann evtl eine andere Möglichkeit dies zu realisieren?

Den Minutenwechsel kann man nicht vom Betriebssystem abfangen, oder?

12.08.2008 - 13:20 Uhr

Die Idee ist garnicht so schlecht, dann würde ich am Anfang nicht bis zu 59mal prüfen. Danke 😉

12.08.2008 - 13:14 Uhr

Hallo,

ich habe diverse Datums- inkl. Zeitangaben (Stunde, Minute) in Form von DateTime Objekten.

Immer wenn eine dieser Angaben mit der aktuellen Zeit übereinstimmt möchte ich dies mitbekommen.

Ich bräuchte also etwas, daß immer zum Minutenwechsel prüft ob einige der DateTime Objekte mit der aktuellen Zeit übereinstimmen.

Meine erste Idee ist Folgende:

Ich habe einen Timer, der jede Sekunde prüft, ob die aktuelle Zeit den Wert 0 bei den Sekunden hat. Ist dies der Fall, starte ich einen neuen Timer, der dann in 60 Sekunden Ticks die restlichen Überprüfungen erledigt und der Sekunden-Timer wird gestoppt.

Ist diese Lösung sinnvoll oder kann man das auch anders realisieren?

07.08.2008 - 19:21 Uhr

Ich habe es nun mit Parametern gelöst, dort gab es die genannten Probleme nicht. Zudem habe ich die Uhrzeit nun doch in dem Datumsfeld mitgespeichert.

06.08.2008 - 14:17 Uhr

verwendetes Datenbanksystem: Access

Ich in einer Access Datenbank u.a. zwei Felder. In einem wird das Datum als Datum/Uhrzeit gespeichert und in einem anderen eine Uhrzeit. Dies hat bestimmte Gründe die hier keine Rolle spielen.

Ich möchte nun alle Einträge ab einem gewissen Datum haben, das funktioniert auch:


String abfrage = "SELECT * FROM Termine WHERE Datum >= Date() ORDER BY Datum";
return DataTable(abfrage);

Liefert mir eine DataTable mit allen Informationen zurück.

Nun möchte ich aber auch die Uhrzeit mit in's Spiel bringen und das klappt nicht so wie es soll. Ich hatte die Uhrzeit auch schon in dem Datumsfeld, die Funktion Date() läßt diese aber außen vor.

Eine Abfrage wie


... AND Zeit >= '10:00:00' ...

funktioniert leider nicht.

Für jede Art der Hilfe bin ich dankbar.

02.08.2008 - 15:16 Uhr

Danke für die schnelle Hilfe, werd es dann wohl doch mit Events machen.

02.08.2008 - 14:31 Uhr

Von globalen Variabeln bin ich kein Fan. Habe es im Moment zwar so geregelt aber wollte das gerne ändern.

Habe mehrere Forms, in denen etwas gespeichert wird und wollte nicht für jedes einen Extra Event schreiben.

Dachte, daß es evtl. eine andere, evtl. elegantere, Lösung dafür gibt.

02.08.2008 - 14:19 Uhr

Hallo,

ich habe eine Mainform von der aus ich andere Forms erzeugen kann. Diese Forms können u.a. Informationen abspeichern. Wird nun etwas gespeichert, möchte ich dies in meiner Mainform mitbekommen. Ich möchte es ohne EventHandler programmieren und bin auf der Suche nach einer anderen Möglichkeit.
Quasi eine Art Rückgabewert der Form, wenn in ihr etwas gespeichert wurde.

31.07.2008 - 15:01 Uhr

Danke für die schnelle Hilfe. Hast du evtl.noch ein paar Tips zu einem IComparer, habe ihn noch nie verwendet.

31.07.2008 - 14:52 Uhr

Hallo,

die Frage ist sicher sehr banal aber ich steh gerade absolut auf'm Schlauch.

Ich habe zwei zusammengehörige Werte (int und double) und möchte diese abspeichern. Danach möchte ich nach dem double sortieren. Also im Endeffekt nen Dictionary, oder List<KeyValuePair<int, double>, etc

Allerdings kann ich den double nicht als Key abspeichern, daß er nicht eindeutig ist und ich bekomme es absolut nicht hin die oben genannten Datentypen nach dem Value zu sortieren, wenn das überhaupt geht.

Für jede Art der Hilfe bin ich dankbar.

28.07.2008 - 12:48 Uhr

Die Fehlermeldung ist nun weg, der Fehler lag zum Schluss woanders...blind von Bekannten kopieren kann auch mal schiefgehen 🙂

ReadXML funktioniert aber nur bedingt. Bekomme immer diese Fehlermeldung: "DataTable unterstützt keine Schemadeduktion von Xml."
Habe gelesen, daß ich dann den Umweg über ein DataSet machen muss.

Muss Access eigendlich installiert sein um per OLEDB eine Access Datenbankbank anzusprechen? Hab leider keinen Rechner ohne Access zur Verfügung um es zu testen.

28.07.2008 - 12:32 Uhr

Leider funktioniert das nicht, bekomme immer noch eine endlos lange Fehlermeldung beim Start.

Werde es nun wohl doch mit XML lösen.
Chilkat bietet da eine nette Klasse, allerdings habe ich immer noch das Problem, daß ich die DataTable komplett von Hand zusammenbauen muß wenn ich das XML Dokument lade 😠

28.07.2008 - 11:01 Uhr

Hallo,

ich schreibe im Moment ein Programm, welches u.a. Personen (Name, Wohnort, Geburtstag, etc) abspeichert und den Benutzer erinnert wenn jemand Geburtstag hat.

Da ich u.a. mit einer DataTable und einem DataGridView arbeite, tendiere ich zu Access, da so einen schnellen Zugriff auf die Daten in Form einer DataTable habe. Unter XML kann man, soweit ich weiß, nicht sofort die DataTable füllen, sondern muß den Umweg über ein DataSet machen; wenn es komplexere XML-Dokumente sind.

Da ich bis jetzt noch nie mit XML gearbeitet habe (die Notationen sind mir bekannt nur habe ich es noch nie aus einem Programm erzeugt, ausgelesen) und mir im Moment der Einstieg schwerfällt (zeitbedingt) und ich noch kein Turtorial gefunden habe, welches alle meine Fragen beantwortet tendiere ich zu Access.

Allerdings habe ich dort das Problem, daß ich auf einem Rechner Vista 64 nutze und dort der OLEDB Zugriff nicht funktioniert.

Ich habe zwar schon die 2007 Office System Driver: Data Connectivity Components installiert, weiß aber nicht wie ich ein Programm unter Vista 64 so debuggen kann, daß es auch funktioniert; als x86.

02.07.2008 - 14:02 Uhr

*edit*
hat sich erledigt

01.07.2008 - 17:13 Uhr

Habe die Klasse nun als dll ausgelagert und bis jetzt sieht es sehr gut aus 😉

Danke für die schnelle Hilfe.

01.07.2008 - 15:40 Uhr

Hallo,

ich habe ein Programm, welches ein TreeView serialisiert und in einer Datenbank abspeichert. Das gleiche Programm kann dieses TreeView auch wieder laden. Das alles funktioniert reibungslos.
Für das Serialisieren und Deserialisieren benutze ich eine Klasse, die von TreeView und Serializable erbt und diese beiden entsprechend erweitert.

Nun möchte ich aber aus einem anderen Programm ein zuvor gespeichertes TreeView laden und da fangen die Probleme an.
Ich habe im zweiten Programm keine GUI, brauche das TreeView aber zur Auswertung.
Ich lade den Stream aus der Datenbank als MemoryStream und übergebe ihn der Serialisierungsklasse, dann kommt der Fehler:

Unable to find assembly 'XXX, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'.

XXX ist der Namespace des ersten Programms (welches den TreeView serialisiert hat).

Da die Klassen, die für das Serialisieren/Deserialisieren zuständig sind 100% identisch sind verstehe ich nicht, wieso er dort Probleme macht.

Für jede Art der Hilfe bin ich dankbar.

27.06.2008 - 11:17 Uhr

Die Teilmengen die zusammengesucht werden sind teilweise sehr komplex und vollständig variabel bzw. gehen über beliebig viele Tabellen, die im Vorfeld nicht bekannt sind. Die Teilmenge bestehen aus einer Spalte, die eine ID beinhaltet.
Kein Tabellen- und Spaltenname ist hardgecoded vorhanden, deswegen kann ich nicht sagen, wie das Statement später aussieht.
Da die Abfragen der Teilmengen sehr unterschiedlich sein können habe ich es über UNION und INTERSECT gelöst, da ich der Meinung bin, daß dies der günstigste Weg ist und das Statement so übersichtlicher bleibt.

27.06.2008 - 10:53 Uhr

Da das Statement sehr variable ist und vom Benutzer definiert wird, wird es schwer die Klammern richtig zu setzen wenn die Abfrage sehr groß wird. Ich habe Bedenken, daß das ohnehin schon sehr komplexe zusammenbauen der einzelnen Abfragen schwer zu realisieren ist.

Ich möchte, daß sich alle Teilmengen aufeinander beziehen und gemeinsam die Ergebnismenge bilden.

27.06.2008 - 10:13 Uhr

verwendetes Datenbanksystem: MS SQL

Hallo,
ich hab eine größere Abfrage, die mittels UNION und INTERSECT arbeitet.
Ist es möglich die Gewichtung dieser beiden Operatoren zu umgehen? Eine Klammersetzung reicht in den meisten Fällen leider nicht aus.

Einfaches Beispiel:
Angenommen ich habe 5 Teilmengen (a bis e), die ich zu einer Menge zusammenfassen möchte.

a
UNION
b
INTERSECT
c
UNION
d
INTERSECT
e

Wenn ich die Abfrage so abschicke werden die verschiedenen UNION's und INTERSECT's unterschiedlich gewichtet und beziehen sich teilweise wieder nur auf andere Teilmengen.
Kann man dies umgehen, ohne die Reihenfolge der Abfragen zu verändern oder muß ich das anders lösen?

17.06.2008 - 00:13 Uhr

Danke für die Tips. Werde das mal ausprobieren und schauen ob es einen Fehler gibt.
Was mich halt wundert ist, daß das Statement ohne eine Fehlermeldung ausgeführt wird aber nur Teilergebnisse zurückliefert.
Hoffe, ich finde durch die genannten Mittel eine Lösung.

/edit

Ich könnte ko***, es lag an den Parametern, die teilweise falsch eingesetzt wurden weil ein counter Probleme gemacht hat. Danke 😉

13.06.2008 - 16:53 Uhr

verwendetes Datenbanksystem: MS SQL

Hallo,

kann es sein, daß C# unter bestimmten Umständen Datenbankabfragen nicht mehr korrekt auswerten kann? Zum Beispiel wenn die Abfragen zu komplex werden?

Ich habe folgendes Problem:

Ein, durch mein Programm geschriebenes Statement wird nicht vollständig ausgewertet, ich bekomme nur eine Teilmenge des gewünschten Ergebnisses.

Durch mehrere Filter kann man sich ein Statement generieren welches mit UNION/INTERSECT und Klammern verschachtelt wird. Desweiteren werden SQL Parameters genutzt.
Schicke ich dies Statement nur per Programm ab, "findet" der dReader nur einige Teilmengen und andere nicht.
Kopiere ich das Statement und ersetze die SQL Parameters durch Hand und schicke die Abfrage dann per MS SQL Server Manager ab wird das Statement korrekt ausgeführt.

Langsam weiß ich nicht mehr weiter und bin für jede Hilfe dankbar.

23.05.2008 - 17:05 Uhr

Danke,

dann werd ich mich das WE mal an's Werk machen.

22.05.2008 - 23:25 Uhr

Ich möchte ein Programm schreiben welches Benutzerdaten (Name, Adresse, Geburtstag, etc) speichert und mich informiert wenn jemand Geburtstag hat. Zusätzlich soll es eine Art Notizbuch geben, in dem man Termine vormerken kann.

Da wir im Studium gerade erst mit XML angefangen haben, bin ich mir nicht sicher welche Methode hier am sinnvollsten ist; Access oder XML.

Ich tendiere zur Access DB. Muß man Access dafür später installiert haben wenn ich den Zugriff über OLEDB realisiere?

Kann man zu der Zugriffsgeschwindigkeit generell etwas sagen?

08.04.2008 - 16:52 Uhr

verwendetes Datenbanksystem: MS SQL

Ich habe ein Problem mit 2 Abfragen bei dem ich nicht weiter kommen.

1)

Ich habe eine Tabelle in der u.a. ein Datum und eine Zeit (Stunden, Minuten) stehen.
Nun möchte ich ein SELECT abgeben welches mit eine Tabelle mit dem Datum (gruppiert nach Monaten (oder Tagen, Jahren) ausgibt und dementsprechenden Zeiten (Stunden, Minuten) dazu aufaddiert und daneben ausgibt.

2)

Ich habe eine Tabelle in der u.a. 2 Felder vorkommen, die ich in Beziehung setzen möchte.
Als Result brauche ich eine Auflistung der verschiedenen Kombinationen der Felder und der Anzahl wie oft diese Kombination vorkommt.

Das Problem an der Sache, ich möchte nur auf SQL Befehle zurückgreifen und nicht im Programm mit den Tabellen arbeiten.

zu 1)

Habe schon diverse Versuche mit dem Konvertieren des Datum verbracht und bekomme auch die Monate gruppiert, allerdings nicht die dazugehörigen Zeiten.


select CONVERT(varchar(6), date, 112) from tabelle group by CONVERT(varchar(6), date, 112);

So gruppiere ich im Moment nach den Monaten.

zu 2)

Da habe ich schon an eine temporäre Tabelle gedacht. Wie ich diese aber richtig einbinde weiß ich nicht. Geschweige denn ob ich damit zum Ziel komme.

Bin für jede Art der Hilfe dankbar.

01.04.2008 - 15:52 Uhr

verwendetes Datenbanksystem: MS SQL

Hallo,

ich habe eine Datenbank, deren Struktur einem Programm nicht bekannt ist.
Ich möchte dem Nutzer nun alle Spalten zur Auswahl stellen, von denen eine Verbindung zu einer speziellen Tabelle besteht. Diese Tabelle ist dem Programm bekannt.

Das Programm ermittelt als erstes alle Constraints und merkt sich die Tabellen, die eine Verbindung zu der speziellen haben.
Ich hab zum Schluss eine DataTable, die wie folgt aussieht:

TableName, SourceTable, SourceColumn, TargetTable, TargetColumn

TableName = Name der Tabelle für die das Constraint wichtig ist.
In den anderen 4 Spalten ist dann ein Constraint gelistet.
Es kann also sein, daß ein TableName z.B. 3x vorkommt wenn er 3 Constraints braucht um auf die spezielle zu referenzieren.

Nun kann der Benutzer zu allen Spalten der Tabellen, die in in der DataTable vorkommen einen Wert auswählen.

Ich müßte ja nun alle Informationen haben um auf mögliche Primärschlüssel der Tabelle zu verweisen. Allerdings weiß ich nicht wie ich das SELECT Statement aufbauen soll. Habe schon mehrer Ansätze probiert, aber wirklich was sinnvolles kommt nicht bei raus.

z.B.:

SELECT PrimaryKey FROM TabllenDieVorkommen(sind ggf. mehrere)
WHERE
SourceTable.SourceColumn = TargetTable.TargetColum
AND
SourceTable1.SourceColumn1 = TargetTable1.TargetColum1
AND
...

Quasi alle Constraints die für eine Tabelle benötigt werden verschachteln.
Es kommt auch ein gültiges SQL Statement raus, aber ich bekomme bei weitem nicht die richtige Anzahl an Datensätzen.

Ich hoffe man kann in etwa nachvollziehen was ich möchte 😉

Bin für jede Art der Hilfe dankbar

20.03.2008 - 14:07 Uhr

@schaedld

Wenn ich bei deinem Code Form2 mit ShowDialog() modal erzeuge, wird der Event nicht richtig verarbeitet. Weißt du woran das liegen kann?

17.03.2008 - 14:05 Uhr

Danke, das Problem hat sich mittlerweile von selbst gelöst. Die Struktur mußte angepaßt werden.

17.03.2008 - 10:42 Uhr

verwendetes Datenbanksystem: MS SQL

Ich möchte den Primärschlüssel anhand des Tabellennamen herrausfinden und komme einfach nicht weiter.
Habe bis jetzt nur mit Oracle zu tun gehabt und dort heißen die DD-Tabellen komplett anders 😠

17.03.2008 - 10:38 Uhr

/edit

verklickt

11.03.2008 - 17:08 Uhr

Schade, ich dachte man könnte evtl direkt auf eine Variable zugreifen in der steht wo etwas geändert wurde.

Da bei mir zu etwas dazukommen kann (hängt mehr dahinter) muß ich mir was sinnvolles für die Überprüfung überlegen.

Danke erstmal für die schnelle Hilfe 😉