Laden...

Forenbeiträge von d.gierse Ingesamt 115 Beiträge

17.12.2008 - 10:56 Uhr

alles klar, hört sich gut an, dann werd ich das so mal angehen.

16.12.2008 - 20:28 Uhr

gut, aber bekomm ich dann nicht Zirkelbeziehungen, wenn dann ein Projekt einen Kunden enthält und ein Kunde wiederum eine Liste seiner Projekte hat ?

15.12.2008 - 17:21 Uhr

Fehler hat sich mittlerweile erledigt. VS2008 und AnkSVN scheinen nicht ganz miteinander klar zu kommen. Der Fehler tritt immer auf wenn ich den Code zuvor Commited habe

15.12.2008 - 16:08 Uhr

füg in dein Div-Tag doch mal ein runat="server und eine ID ein, dann kannst du über die ID in der Code-Behind darauf zugreifen

15.12.2008 - 15:46 Uhr

OK,
dann war das schlecht beschrieben. Hier mal ein Beispiel. Ich habe z.B. 2 Klassen A und B.
Klasse A ist in beiden Fällen gleich:

public class Kunde
{
    public int ID {get; set;}
    public string Name {get; set; }
    .
    .
    .
}

Bei einem Nested Object (wie wir das immer nennen) ist die Property ein Typ der Klasse, auf die verwiesen wird. Z.B.:

public class Projekt
{
    public Kunde ProjektKunde { get; set; }
    public DateTime Projektstart { get; set; }
    . 
    .
    .
}

Wenn ich mit einer Referenz auf den Kunden arbeiten würde hätte ich z.B. sowas:

public class Projekt
{
    public int KundeID { get; set; }
    public DateTime Projektstart { get; set; }
    . 
    .
    .
}

Bei dem ersten Ansatz hab ich ein Member vom Typ Kunde, der auf das Kunde-Objekt referenziert, beim zweiten hab ich eine ID, über die ich an den Kunden kommen kann.
Ich kenne da nur keine Entscheidungshilfe, wann man welchen der beiden Wege nimmt. Außerdem möchte ich mal NHibernate nutzen und weiss noch nicht was da einfacher zu realisieren ist.

15.12.2008 - 15:31 Uhr

Hallo,

ich habe eine ASP.NET-Webanwendung geschrieben, die bereits seit mehreren Monaten auf dem Server läuft. Ich habe die Anwendung immer mit einem Rechtsklick auf das Projekt und dann "Veröffentlichen..." erstellt, Ziel der Veröffentlichung ist ein lokaler Ordner auf meiner Festplatte. Danach lade ich die Dateien auf den Webserver.

Neuerdings bekomme ich beim veröffntlichen aber immer folgende Ausgabe:

------ Erstellen gestartet: Projekt: XY.UserAdministration, Konfiguration: Release Any CPU ------
XY.UserAdministration -> F:\XY\UserAdministration\UserAdministration\bin\Release\XY.UserAdministration.dll
------ Erstellen gestartet: Projekt: Portal, Konfiguration: Release Any CPU ------
Portal -> F:\ZZ\Portal\bin\Portal.dll
------ Veröffentlichungsvorgang gestartet: Projekt: Portal, Konfiguration: Release Any CPU ------
========== Build: 2 erfolgreich oder aktuell, Fehler bei 0, 0 übersprungen ==========
========== Veröffentlichung: 0 erfolgreich, 1 Fehler, 0 übersprungen ==========

Hat die Meldung schon mal jemand gehabt? Ich bekomme keine vernünftige Fehlermeldung, in der Statusleiste steht lediglich "Erstellen fehlgeschlagen"

Gruß Dominik

11.12.2008 - 12:59 Uhr

was spricht denn dagegen, die eine Klasse von der anderen Abzuleiten? du kannst doch in den Codeteilen, wo du die gemeinsame Funktionalität verwenden willst ein Objekt der Klasse A gründen und da ein objekt-B rein packen.
Momentan kann ich dein Problem noch nicht genau erkennen. Das andere geht auch, aber wenns nicht notwendig ist braucht man solche Patterns auch nicht verwenden. Es geht ja nicht darum möglichst viele Patterns in die Architektur zu pressen sondern sie da einzusetzen wo sie sinnvoll sind.

11.12.2008 - 12:30 Uhr

Hallo,

ich hab da noch mal eine Designfrage:
Gibt es eine Entscheidungshilfe, in welchem Fall man in einem Datenobjekt Nested Objects und wann man referenzen zwischen den Objekten speichert.
Ich habe z.B. Eine Klasse Projekt, die Projekte sind immer einem Kunden zugeordnet.
Gehört in die Klasse Projekt eine Referenz auf Kunde oder bekommt die Klasse eine Eigenschaft mit dem Kunden?
Ich möchte in diesem Projekt zum ersten mal NHibernate benutzen, was ist da einfacher zu realisieren ?

Gruß Dominik

11.12.2008 - 12:09 Uhr

Also eine einfache Benutzerverwaltung kannst du über die Principal-Objekte machen. Da gibt es für die verschiedenen Authentifizierungsmethoden jeweils unterschiedliche Pricipal-Objekte. Bei dir sollte ein GenericPrincipal mit einer Liste von Rollen reichen.

Beim Login nach erfolgreicher Authentifizierung ein Objekt vom Typ GenericPrincipal gründen, die Rollen zuweisen und mit

Thread.CurrentPrincipal = deinPrincipal;

setzen

Dann kannst du im Code über

Thread.CurrentPrincipal.IsInRole("benötigteRolle")

abfragen, ob der Benutzer die Rechte hat

13.10.2008 - 11:27 Uhr

hat jemand ne idee, wo ich einen Server mit ASP.Net 3.5 und Oracle-DB bekommen kann. bin leider an Oracle gebunden 🙁

13.10.2008 - 11:15 Uhr

Der HTML-Code von der Masterpage wird auch so übernommen, wie er drin steht. Wenn du da relative Pfadangaben zu deinen Stylesheets angibst kann das in der Form1 nicht gefunden werden, weil er ein Projekt\Mitarbeiter\css sucht und das da wahrscheinlich nicht findet

18.07.2008 - 15:28 Uhr

Okay,

Danke euch beiden, dann werd ich das jetzt mal so umsetzen. Meines verstehens nach meint JAck30lena auch die GL

Gruß

18.07.2008 - 15:17 Uhr

Hallo herbivore,

deswegen hab ich wohl auch noch nirgends was darüber gefunden.
In diesem Fall kann ich aber doch an 2 Stellen (Geschäftslogik, Datenzugriff) festestellen, das die übergebenen Parameter nicht passen.
Ich möchte das aber nach Möglichkeit nur an einer Stelle machen faulbin

Gruß

18.07.2008 - 15:09 Uhr

Hallo,

ich habe eine mehrschichtige Anwendung mit GUI, Geschäftslogik und Datenzugriff. Bei ungültigen Zuständen werfe ich Ausnahmen und fange diese an entsprechender Stelle.
Innerhalb dieser Software werden z.B. Messdaten mit ihrem Zeitstempel abgerufen.

Wo schmeisse ich am besten die Exception, wenn z.B. der Startzeitpunkt der Anfrage nach dem Endzeitpunkt liegt?

Ich könnte die Exception zum einen bereits in der Geschäftslogikschicht schmeissen. Damit könnte ich die Intelligenz in meiner Datenzugriffsschicht kleiner halten und mich auf den Datenabruf beschränken.

Alternativ könnte ich die Exception aber auch erst in der Datenzugriffsschicht schmeissen. Das hätte den Vorteil, das ich das Ganze nicht in der Geschäftslogik mehrmals machen muss, falls mehrere Funktionen aus der Geschäftslogik die gleiche Funktion in der Datenzugriffschicht verwenden.

Bei wem hat sich welcher Weg als besser heraus gestellt und warum ?

Gruß Dominik

07.04.2008 - 11:14 Uhr

OK, nun mal angenommen ich würde einen Windows Dienst bauen der den Zustand hält und würde den Webservice als Proxy einbringen. Wie frage ich dann diesen Windows-Dienst ab?
Hast du da ein Codebeispiel zu ?

Weitere Lösungsvorschläge sind ebenfalls willkommen falls noch jemand eine Alternative auf Lager hat.

Gruß Dominik

07.04.2008 - 09:28 Uhr

ist jetzt keine Lösung deines Problems, aber folgenden Punkt solltest du bei deinem Datenshredder auch beachten:
Die Spur auf der Festplatte ist etwas breiter als sie mit Daten beschrieben wird. Die Schreib-Lesekopf hat also eine gewisse Toleranz. Wenn man bestehende Daten überschreibt bleiben an den Rändern meist Reste der alten Datei über. diese Informationen werden im laufenden Betrieb nicht ausgewertet, da sie ganz am aüßeren Rand der Spur stehen. Datenretter können diese Reste allerdings verwenden um Daten wieder herzustellen, das Ganze ist aber sehr teuer. Wenn du also wirklich wichtige Daten schreddern willst solltest du das mehrmals überschreiben. Dann wird durch die Toleranz auch immer mal der eine oder andere Rand getroffen, man sagt nach 4 Durchläufen ist das nicht mehr wieder herzustellen

07.04.2008 - 09:12 Uhr

Hallo zusammen,

in einem Softwareprojekt bekomme ich von außerhalb laufend Meldungen über Zustände überwachter Aggregate.
Diesen Zustand möchte ich in einer Liste behalten und immer weiter Zustandsänderungen aufnehmen. Diese Liste möchte ich dann auch abfragen können und über einen Webservice Informationen weiterreichen.
Wie mache ich sowas am besten? Schreibe ich einen Windows-Dienst, der die Zustandsliste hält und aktualisiert? Wie kann ich dann von meinem Webservice aus dieses Programm, das den Zustand behält abfragen?
Oder Lege ich besserr eine Library mit einem Zustandsobjekt an, das ich dann innerhalb meiner Webanwendung über die Global.asax starte? Wie frage ich das dann ab?
Stehe da grade etwas auf dem Schlauch, muss keine komplizierte Lösung sein...

Gruß Dominik

02.04.2008 - 14:08 Uhr

Hallo,

unter ASP.Net habe ich da ähnliche Wege genommen, aber unter Silverlight sind die Vorraussetzungen anders, da das ja auf dem Client und nicht auf dem Server ausgeführt wird. Daher kann ich den Weg nicht gehen

Gruß

02.04.2008 - 10:18 Uhr

Ja die Möglichkeit hatte ich Anfangs auch mal in Betracht gezogen, ich möchte aber nach Möglichkeit in meiner Silverlight-Anwendung bleiben und nicht den HTML-Umweg gehen.

Genrell brauche ich ein Objekt um den aktuellen Zustand zu sichern. Nicht nur für Login-Informationen sondern auch für einige andere Dinge, die ich zwischenspeichern möchte. Wenn ich das habe kann ich das Login-Thema auch gleich damit machen...

Wichtiger wäre mir aber die Frage nach der Datenanbindung am Server und deren Absicherung.

01.04.2008 - 16:23 Uhr

Hallo schaedld,

vielen Dank für das Tutorial, aber das mit dem Databinding kannte ich schon.

Meine Fragen drehen sich eher darum, wie ich vom Server die Daten bekommen, wenn ich auf dem Client die GUI ausführe und wie ich das Ganze auf dem Server so absichere, das ein Kunde B nicht die Daten von Kunde A sehen kann.

Auch die Frage nach etwas ähnlichem wie einer Session in einer Silverlight-Anwendung ist noch offen.
Hat jemand weitere Ideen?

Gruß Dominik

31.03.2008 - 16:13 Uhr

Hallo,

ich habe folgendes Szenario:
Auf einem zentralen Server liegt eine Datenbank mit kundenspezifischen Daten. Diese Daten sollen über eine Webapplikation zum Kunden zugänglich gemacht werden. Dabei muss sichergestellt sein, das Kunde A nicht auf die Daten von Kunde B zugreifen kann.
Die Daten möchte ich dem Kunden über eine Silverlight GUI zur Verfügung stellen.

Wie rufe ich die Daten aus der Serverdatenbank am besten ab?
Wie kann ich jetzt eine Authentifizierung sicher stellen, damit nur Kunde A seine Daten abrufen kann? Ich habe ja auch dem Server keine Session-Authentifizierung o.ä.

Wie kann ich mir in der Silverlight-Anwendung am besten die Rechte / Rollen des angemeldeten Benutzers merken? Gibt es sowas ähnliches wie eine Session ?

mfg Dominik

11.03.2008 - 17:47 Uhr

Hallo,

ich suche für unser Entwicklungsteam einen Anbieter von Inhouse-Schulungen für .net. Themengebiete sollte ADO, LINQ, Datentransfer in Anwendungen und dazu passende Anwendungsdesigns seien.
Hat jemand von euch mit einem Anbieter von Schulungen gute Erfahrungen gemacht?

Mit freundlichem Gruß
Dominik

26.10.2007 - 08:53 Uhr

Danke für deinen Beitrag. Dann werde ich das wohl doch mal mit DataSets im Angriff nehmen.
Die DataSets für Kunden und Aufträge zu teilen sehe ich ja eigentlich auch als ganz sinnvoll. Aber ich möchte gerne die Datenbindung aus dem VS nutzen und einfach meine Liste an ein GridView binden. Dieses GridView soll aber Daten von Kunden und Aufträgen anzeigen.
Dann brauche ich doch ein DataSet mit beidem, oder nicht?
Wenn ich das nicht brauche, gibts da irgendwo n Tut zu ?

Gruß Dominik

24.10.2007 - 23:32 Uhr

verwendetes Datenbanksystem: SQL Server 2005, Oracle 10g

Hallo zusammen,

ich habe mal eine Designtechnische Frage. Ich habe als Beispiel eine Auftragsverwaltung. In einer meiner Datenbanktabellen liegen also die ganzen Autfträge, die Aufträge beinhalten einen Kunden und eine Positionsliste, die wiederum einzelne Positionen enthält usw... Das ganze liegt in der DB natürlich in den jeweiligen Tabellen.
Wenn ich jetzt eine Auftragsübersicht erstelle bzw. Auftragsdetails anzeige, dann brauche ich ja wieder Daten aus meiner Datenbank.

  1. Variante: Ein Business-Objekt erzeugen, das den Auftrag darstellt und z.B. eine Kunden-ID. Wenn ich dann Kundendaten benötige lade ich zu der Kunden-ID den passenden Kunden.

  2. Variante: Ein Business-Objekt erzeugen, das den Auftrag darstellt, mit einer Eigenschaft "Kunde", d.h. ich lade jeweils den ganzen Kunden und die Positionsliste usw. mit

  3. Variante: Ich erzeuge mit ein DataSet, das alle benötigten Daten enthält und verbinde das Dingen mit meinem GridView

Eigentlich wäre die 3. Variante ja die einfachste, aber ich habe auch schon diverse Male gehört, das DataSets eine schlechte Performance haben.
Ich möchte die Daten für eine Web-Applikation laden, in der schon mehrere Benutzer gleichzeitig eine solche Auftragsliste laden, die auch sehr viele Daten enthält (Kunde und Positionsliste sind erstmal nur der Anfang)
Für die Performance würde ich eigentlich die 1. Variante bevorzugen, aber da muss ich ja die Objekte alle einzeln laden und kann das auch nicht mal eben an ein GridView hängen.
Wie würdet ihr solche Dinge gestalten? Sind DataSets von der Performance her wirklich so schlecht?

Gruß Dominik

21.10.2007 - 20:36 Uhr

Hallo zusammen,

kann ich mit dem Testserver aus dem Visual WebDeveloper Express eine Seite mit SSL-Verschlüsselung testen?
Hat jemand ne gute Beschreibung dazu ?
bei mir laufen Anfragen über https immer ins leere

Gruß Dominik

27.09.2007 - 15:46 Uhr

ja das das geht is klar, deswegen hab ich ja überhaupt das Thema gestartet

26.09.2007 - 22:27 Uhr

das brauche ich, wenn ich fertige module verwenden will, die ich bereits mit Visual C# erstellt habe. Wenn ich die Module dann nur noch geringfügig anpassen muss verwende ich ja die fertigen Sourcen

23.09.2007 - 10:00 Uhr

Hallo,

gut das Problem mit dem SQL-Server denke ich bekomme ich dann auch in den Griff.
Wie schaut es denn sonst aus, wenn ich da in zwei verschiedenen Umgebungen arbeite? Speziell jetzt beim Thema Debugging. Gibt es da Einschränkungen?

Gruß

20.09.2007 - 21:45 Uhr

Hallo,

ich möchte für meine nächste Software den Core unabhängig von der Oberfläche programmieren. Den Kern mit BusinessLAyer und DataLayer wollte ich eigentlich als Klassenbibliothek in Visual C#-Express anlegen und die dll dann in meinem Web-Developer nutzen.
Ich hab das jetzt mal versucht, aber speziell bei den Datenbankanbindungen bekomm ich Probleme mit folgender Meldung:

An attempt to attach an auto-named database for file Database\clientsadmin.mdf failed. A database with the same name exists, or specified file cannot be opened, or it is located on UNC share.

Die ConnectionStrings hab ich eigentlich in der app.config meiner Bibliothek hinterlegt, aber die app.config wird gar nicht mit kopiert in das bin-Verzeichnis der Webseite.

Geht das überhaupt so einfach, in der einen Umgebung ne Biliothek anlegen und die dann im anderen Projekt verwenden?
Oder kann ich den DataAccessLayer nicht gescheit in eine dll auslagern?
Hat jemand von euch Erfahrung mit dem Debugging, wenn man die dll in der einen, die Webseite in der anderen Umgebung entwickelt?

Gruß Dominik

28.08.2007 - 13:50 Uhr

Ja eigentlich schon, möchte mich bei der Anwendung aber nicht auf einen Web-Service verlassen den Dritte bereit stellen.
Der Dienst kann mir so wie ich das gelesen habe auch nicht den Namen der Bank zu einer BLZ liefern. Das sollte aber auch schon drin sein.

mfg Dominik

28.08.2007 - 13:31 Uhr

ja die reihge der Prüfalgorythmen umfasst ca. 120 verschiedene. Die möchte ich nicht alle programmieren. Da gibt es sicher jemanden, der das schon gemacht hat

@Bart: hast du was raus gefunden ?

Gruß Dominik

24.08.2007 - 21:56 Uhr

Hallo Bart,

muss die OCX erst registriert werden? Oder kann ich die auch so anbinden. Will die in einer ASP.Net Anwendungen verwenden und weiss noch nicht, was mich der Provider da so zusätzlich installieren lässt.

Gruß Dominik

23.08.2007 - 17:38 Uhr

Hallo zusammen,

weiss jemand von euch wo ich ne gute Komponente zum valiedieren von deutschen Bankverbindungen.
Hab bisher bei Google nur Mist gefunden, die entweder nicht alle Prüfmethoden kannten oder den Namen der Bank nicht automatisch ermitteln konnten.

Gruß Dominik

02.08.2007 - 16:26 Uhr

Hallo herbivore,

ich verwende den Timer aus System.Timers.Timer

Ok, möglich wäre es das Ganze im EventHandler zu machen, aber ich hätte das lieber an anderer Stelle im Code gemacht, wenn ich die Exception wo anders hätte fangen können. Wenn der Timer aber auch einen neien Thread aufmacht gehts natürlich nicht.

02.08.2007 - 15:33 Uhr

Danke für die schnelle Antwort. Hab ich wohl einfach in der flaschen Richtung gesucht...

02.08.2007 - 15:25 Uhr

Hallo,

ich habe in meiner Anwendung einen Timer, der zyklisch ein Event aulöst. Dabei ist es möglcih, das eine Exception auftritt, die ich in dem Eventhandler nicht lösen kann.
Also würde ich die Exception gerne an anderer Stelle im Code fangen.
Aber wo kann ich das tun ? ich habe ja keinen direkten Aufruf der MEthode

Gruß

01.08.2007 - 11:51 Uhr

Hallo,

ja hatte den Artikel schon gelesen und so mal eingebaut. Genügen tut das schon. aber es wäre halt schöner, wenn ich das über den Designer erstellen könnte und überall typsicher über Properties.Settings.XXX darauf zugreifen könnte. Und vielleicht hätte es ja hier einen gegeben, der in der Sache schlauer ist als ich und dafür ne Lösung gehabt hätte.

Gruß Dominik

01.08.2007 - 10:20 Uhr

Hallo,

ja aber wenn ich das Programm an Kunden raus gebe meldet sich der Kunde dann mal als Admin an und macht so ein paar Einstellungen. Der hat aber meist recht wenig Ahnung und Angst vor XML-Dateien. Da würde so ein Dialog helfen, zumal ich da gewisse Kombinationen in den Einstellungen verbieten könnte usw.
Daher bin ich etwas enttäuscht, das das neue Modell sowas nicht leisten kann.

Gruß Dominik

01.08.2007 - 09:44 Uhr

Hallo,

ja das neue Konfigurationsmodell kenne ich. Ich bin grade jedoch etwas enttäuscht davon, das ich in dem neuen Modell noch nicht einmal als Administrator aus der Anwendung heraus Werte aus der App.config anpassen kann.

Wenn ich da eine Einstellung für alle Benutzer Treffen will muss ich mir also ein extra Tool machen, mit dem ich meine app.config anpassen kann, weil ich das aus der Anwendung heraus nicht machen kann !?
Schade aber damit steckt man die Arbeit die man am Anfang spart am Ende wieder rein.

Gruß Dominik

01.08.2007 - 09:06 Uhr

Hallo,

hast du denn vorher mit dem Settings-Designer deine config angelegt ?

Gruß Dominik

01.08.2007 - 09:04 Uhr

Hallo,

das Problem besteht nicht nur mit Strings, sondern bei allen Datentypen.

Allerdings habe ich meinem String vorher schon einen längeren Wert zugewiesen, so das die Kapazität größer ist als der Wert der zugeswiesen wird.

btw wie übergebe ich denn da meinen StringBuilder?
Er erwartet doch ein String, und dieser muss eine zuweisbare Variable sein.

Gruß Dominik

31.07.2007 - 18:39 Uhr

Hallo zusammen,

ich habe eine ocx, die ich in C# verwenden möchte.
Diese hab ich mit tlbimp.exe in eine dll überführt und in mein Projekt eingebunden. Die ocx ist im System registriert.

Die erzeugte dll stellt mir u.a. folgende Funktion zur Verfügung


public virtual void GetHdDatenreihe(System.DateTime Start, System.DateTime Ende, int PVID, string Pfad, bool Flag, double Schwelle, ref string Dateiname)

In dem letzten Parameter wird der Pfad der erzeugten Datei zurück gegeben.
Wenn ich die OCX testweise direkt in Excel-VBA verwendet funktioniert die Rückgabe auch.
In meinem Programm rufe ich die Funktion wie folgt auf


hdcontrol.GetHdDatenreihe(Start, End, PVID, "F:\\", false, 0, ref filename);
 

die Funktion selbst funktioniert soweit auch, die Datei wird geschrieben. Nur in filename steht hinterher nicht der Dateiname sondern das, was vor dem Funktionsaufruf schon drin stand.
Wie komme ich an den Wert für den Dateinamen? oder geht das über COM gar nicht ?

Gruß Dominik

30.07.2007 - 11:43 Uhr

Hallo zusammen,

ich möchte für eine Anwendung die Konfiguration in eine Datei schreiben. Ein Anwender soll die Konfiguration über einen passenden Dialog zur Laufzeit ändern können. Da man die Einträge aus der app.config nicht zur Laufzeit anpassen kann habe ich mir zunächst eine Klasse gemacht, die die aktuelle Konfiguration enthält. Diese Klasse serialisiere ich dann als XML und schreibe sie auf die Platte.

Ist das so der richtige Weg oder gibt es da noch bessere Alternativen ?

Es ist möglich das im LAufe der Zeit neue Felder zur Konfiguration hinzugefügt werden. Wie kann ich dann am geschicktesten eine alte Konfigurationsdatei in das neue Objekt einlesen?

Gruß Dominik

05.07.2007 - 13:35 Uhr

Ach so, ja dann ist auch ok. Ich dachte nur da würde es jetzt irgendeinen Trick geben den ich noch nicht kenne 🙂

05.07.2007 - 10:12 Uhr

Hallo,

ich habe einem meiner Projekte eine COM-Schnittstelle hinzugefügt. Die Funktionen in dieser Schnittstelle sind auch verwendbar.
Jedoch habe ich in einem weitere Visual-Studio-Projekt eigene Business-Objekte erstellt, die ich auch in der COM-Schnittstelle verwenden möchte.
Wie kann ich das am besten anstelen ?
Gruß Dom

05.07.2007 - 09:48 Uhr

Kurze Zwischenfrage weils grade zum Thema passt:

Wenn ich mir den CommandText von meinem Command geben lasse enthält das immer die Platzhalter für die Parameter? Damit wäre der Text ja für die IBM-Komponente unbrauchbar.
Wie kann ich das Command denn so ausgeben lassen, das die Paramter fertig eingefügt werden ?

28.06.2007 - 14:10 Uhr

na dann bin ich ja doch nicht so auf den Kopf gefallen, wie ich anfangs gedacht habe. Wenn das eh nicht ganz so einfach geht wie Microsoft das gerne angibt, dann bleib ich wohl bei meinem Modell mit separaten Abfragen. Dann kann ich auch gleich die Befehle für die DB optimieren

27.06.2007 - 15:50 Uhr

verwendetes Datenbanksystem: <Oracle 10 XE, SQL-Server 2005 Express>

Hallo,

ich möchte eine Anwendung schreiben, die sowohl auf SQL-Server 2005, als auch mit Oracle 10 XE läuft.
Für den SQL-Server nehme ich die Klassen, die von Microsoft mitgeliefert werden, für Oracle die Data Access Tools für .net.

Wenn ich aber jetzt mal ein Kommando mit mehreren Parametern absetzen möchte habe ich immer das Problem, das ich das Kommando einmal für SQL-Server und einmal für Oracle schreiben muss. Oracle benötigt zur Kennzeichnung eines Parameters immer den Doppelpunkt, SQL-Server hätte gerne den Klammeraffen

Beispiel:

Oracle-Statement
"SELECT * FROM myTableName WHERE OBJID = :p_pvid AND TIMESTAMP BETWEEN :p_start AND :p_end "

SQL-Server-Statement
"SELECT * FROM myTableName WHERE OBJID = @p_pvid AND TIMESTAMP BETWEEN @p_start AND @p_end "

Ich habe bisher eine Provider-Klasse, die mir neben passenden Connection-Objekten und DataAdaptern auch die fertig parametrisierten Command-Objekte gibt.
Dadurch muss ich aber meinen SQL-Code für jede Datenbank separat pflegen.

Ich denke mal das das auch einfacher geht, aber in den Anleitungen, die ich bisher zum Provider-Modell gefunden habe, wird da immer nur auf SQL-Befehle ohne Parameter eingegangen.

Kennt jemand ne gute Beschreibung dazu, wo das erklärt wird oder kann es kurz in eingene Worte fassen ?

Gruß Dominik

08.02.2007 - 14:08 Uhr

Tag zusammen,

wenn ich mit Hilfe eines DataReaders eine Zeile aus meinem Abfrageergebnis abrufe, habe ich ja mehrere Möglichkeiten auf die Daten zuzugreifen.

Es gibt zum einen die Fukntionen DataReader.GetDouble(), DataReader.GetInt32() etc. bei denen ich aber immer nur die Spaltennummern angeben kann.

Mit reader["XYZ"] kann ich auch auf die Spaltennamen zugreifen, muss die erhaltenen Werte aber immer erst Konvertieren.

Gibt es auch eine einfache Möglichkeit, GetDouble(), GetInt32() etc. zu nutzen und dabei die Spaltennamen zu nutzen ?

Gruß
Dominik