Laden...
Avatar #avatar-2412.png
Seyyedi myCSharp.de - Member
Software Entwickler Dabei seit 28.11.2005 184 Beiträge
Benutzerbeschreibung

Forenbeiträge von Seyyedi Ingesamt 184 Beiträge

08.01.2009 - 21:59 Uhr

Wenn du das zweite mal auf den button klickst wird die seite auf dem server neu aufgebaut. Die dynamischen Controls vom letzten Click sind hier nicht mehr dabei, d.h. dein Panel ist leer (so wie beim ersten Laden der Seite). Durch den zweiten Klick passiert dann genau das gleiche wie beim ersten Mal, es werden drei Controls in ein leeres Panel hinzugefügt.

05.09.2008 - 23:46 Uhr

Als Möglichkeit sei noch genannt die Entities von einem Dictionary abzuleiten. Die Entity Basis Klasse kann den typisierten Zugriff dann theoretisch noch kontrollieren - und das Ganze könnte sich dann sehr leicht erweitern lassen (Stichwort dynamische Datenstrukturen).
O/R Mapper freut sich über Dictionary's evtl. auch 😉

16.07.2008 - 18:35 Uhr

Über Reflection sollte das so machbar sein:


Type varType = [...]

MethodInfo methodInfo = GetType().GetMethod("TestMethod");
methodInfo.MakeGenericMethod(varType).Invoke(this, new object[] { });

10.07.2008 - 15:28 Uhr

Hallo sth_Weird,

zu den einzelnen Arten:

  1. hier wird ein echter TypeCast ausgeführt - sprich (int)[ein.string] dürfte nicht funktionieren. Das heißt, dass die Variable die gecastet wird (dein string) von einem abgeleiteten Typen von dem zu castenden Typen (int) stammen muss (macht hier bei Werttypen eh keinen Sinn, wird vor allem bei Klassen und Interfaces benutzt. Wenn der Cast fehlschlägt wird eine Exception geworfen

--> zu 4: das as macht im Prinzip genau das gleiche wie bei 1) nur, dass wenn der Cast fehlschlägt keine Exception geworfen wird sondern einfach das ergebnis null ist

2 / 3) sind beide das gleiche, wandeln den Wert aber durch eine echte Logik um - z.B. aus dem String "27.11.2008" einen DateTime Wert zu erzeugen. Das ist also kein Cast sondern eine richtige Umwandlung die durch entsprechenden Code vorgenommen werden muss.

[edit] naja, als zusätzliche info 😉

09.07.2008 - 14:22 Uhr

ich würde dir rsync empfehlen, sehr leicht konfigurierbar und synchronisiert perfekt 🙂

Das schöne dabei ist auch, dass mit rsync nur die daten übertragen werden die sich verändert haben - sprich die ordner werden richtig abgeglichen.

Eigentlich läuft rsync unter linux, mit cygwin kann man es aber leicht einbinden!

02.04.2008 - 06:37 Uhr

Spricht etwas dagegen mit Datenbanken zu arbeiten? Die können alles das was du brauchst und ich könnte mir vorstellen, dass dein Vorhaben damit sehr viel leichter und unkomplizierter zu lösen sein müsste!

08.03.2008 - 07:43 Uhr

Für sowas bietet sich der StringBuilder an (System.Text.StringBuilder).

StringBuilder sbMail = new StringBuilder();
sbMail.Append(TextBox_Anforderung_Vorname.Text);

...

if (...)
{
    sbMail.Append(TextBox_Benutzer_Gebaude.Text);
}

...

mail.Body = sbMail.ToString();
29.02.2008 - 18:25 Uhr

Sowas löst man entweder über Konfigurationsdateien (da gibts meines Wissens auch einen Artikel dazu hier auf mycsharp), also z.B. .ini oder .config dateien.

Ein weiterer Weg ist die Windows Registry, würd ich mal als klassischen Ansatz bezeichnen, die meisten Programme die du auf deinem Rechner installierst tragen ein paar Pfade in die Registry ein.

Für beides bietet das .net framework große Möglichkeiten, mit den beiden Stichwörtern (Konfigurationsdatei, Registry) solltest du eigentlich was finden können!

Gruß
Seyyedi

27.02.2008 - 07:06 Uhr

System.IO.Path.GetFileName() 😁

17.02.2008 - 20:02 Uhr

AppDomain.Current sollte dir eigentlich ohne weiters alle Assemblies liefern können die von eben dieser AppDomain geladen worden sind.

Assembly.LoadFile ermöglicht dir eine Assembly zu laden von der du den Dateinamen hast - der reine assembly name bringt dich nur bei den GAC Assemblies weiter...

19.01.2008 - 16:57 Uhr

Du setzt den Wert deine hidden fields erst auf dem Client, sprich bei deinem Page Load Ereignis ist der Wert vom Hidden Field noch nicht gesetzt. Somit wird auch kein Wert in das Label übertragen...

Du kannst entweder alles auf Client seite machen (auch da kannst du den inhalt eines "Labels" ohne weiteres ändern, oder alles auf der Server Seite - bei jedem Request werden auch Informationen über den Browser gesendet (userAgent auf jeden fall)

Gruß
Seyyedi

17.01.2008 - 18:21 Uhr

Danke für eure Antworten,

@norman_timo
Sortierung an sich ist mir klar (auch wenn ich hier OrderBy dem Groupby vorziehen würde), mir geht es um eine durch den Business Layer vorgegebene Sortierung (in den meisten Fällen braucht man das nicht, aber stell dir vor du willst 3 LayoutSpalten in eine DB speichern, dann willst du evtl. vorgeben in welcher reihenfolge du sie am ende wieder bekommst)

@Khalid
Den Gedanken hatte ich auch, allerdings wirds haarig wenn du einen Eintrag zwischen 2 andere verschieben willst - da kann man sich den DateTime Wert schenken und einfach einen int wert nehmen - das Konzept bleibt ja gleich, nur müssen halt alle einträge "danach" verschoben werden (sprich [int] PositionsSpalte + 1)

@Golo
Die Idee an sich finde ich interessant, aber wahrscheinlich ist das am Ende doch die falsche Richtung - normalerweise "darf" das Einfügen/Ändern/Löschen ja länger dauern, als die Abfragen.

Aber dennoch ist es gut zu wissen, dass nicht ein geheimes Pattern existiert, das meine ganzen Überlegungen zunichte macht 😁

Vielen Dank nochmal 🙂

Liebe Grüße

Seyyedi

15.01.2008 - 02:15 Uhr

verwendetes Datenbanksystem: SQL Server 2005 SP2

Hallo,

ich habe eigentlich mehr eine Architekturfrage, bzw. würde mich interessieren wie ihr folgendes lösen würdet:

Nehmen wir eine einfache Tabelle, die eine Spalte 'ID' vom Typ uniqueidentifier besitzt.

Wenn man jetzt Datensätze hinzufügt existiert ja erstmal keine Reihenfolge (was man bei einem incremental index ja hätte). Das ist natürlich erstmal an sich selbstverständlich, nur stehe ich jetzt vor einem Szenario wo die Reihenfolge mit angegeben werden muss.

Das erste woran ich dachte, war der Tabelle eine Position Spalte [int] mitzugeben, nach der dann standardmäßig sortiert wird. Allerdings ist es dann natürlich auch nötig bei jeder Positionsänderung die anderen in Abhängigkeit zu ändern / verschieben.
Das würde an sich gehen, aber evtl. gibt es da ja noch ein geniales Pattern, was mir nur nicht bekannt ist 🙂

Am besten wäre es, wenn die Reihenfolge in der man die Datensätze hinzufügt die erste gültige Reihenfolge wäre - und nachträglich einzelne Datensätze verschoben werden können.

Irgendwelche Ideen?

Liebe Grüße
Seyyedi

01.01.2008 - 14:14 Uhr

Hab die Formel jetzt selber gar nicht untersucht -- aber ein häufiger Fehler ist, dass mit int werten gerechnet wird -- sind bei dir PosX, ZielX, PosY und ZielY alle vom Typ double?

Frohes Neues 🙂

20.12.2007 - 19:05 Uhr

Da die Fehlermeldung auch auftritt, wenn man einfach 2 reader parallel ausführen möchte, ist "MultipleActiveResultSets" noch zu erwähnen.
Im Connection string (SQL Server 2005) ein "MultipleActiveResultSets=true" dazu, dann müsste man mehrere reader parallel ausführen lassen können.

(Passt jetzt nich direkt zum Thema, hier ging es ja darum, dass nach Schließen des Projektes der Fehler aufgetreten ist... aber wenn jemand nach der Fehlermeldung sucht hat er womöglich das andere beschriebene Problem)

Gruß
Seyyedi

09.12.2007 - 23:46 Uhr

Genau das habe ich schon vergeblich gesucht...
Das Problem ist jetzt nicht mehr so akut - hab es vorläufig mit der Exception abgefangen und dann entsprechend manuell das wmp10 setup gestartet - aber prinzipiell sollte es dafür eine Möglichkeit geben.

Vor allem setzt ja jede WPF Anwendung, die Videos abspielen will, den Windows Media Player 10 voraus, der bei Windows XP SP2 nicht dabei ist -.-
Von daher verwundert es mich eigentlich dass es da keine Resourcen zu gibt (bzw. keine die ich bis jetzt finden konnte)

04.12.2007 - 20:20 Uhr

Hi,

ich habe eine WPF Anwendung, in der ich über das MediaElement Videos abspiele.
Hierfür wird intern die Engine von Windows Media Player 10 verwendet.

Jetzt hab ich das Problem, dass wenn der WMP 10 nicht installiert ist (z.B. nur die 9er drauf ist) ich erst beim konkreten Abspielen eines Videos ne Exception bekomme (zwar eine konkrete bezogen auf die Version des WMP, aber naja).

Gibt es eine saubere Methode um zu erkennen ob der Windows Media Player 10 bereits installiert ist?
Am Besten wäre natürlich den WMP gleich ins Setup mit reinzupacken, allerdings hab ich das bisher nicht hinbekommen (bzw. keinen WMP bootstrapper gefunden)

Irgendwelche Ideen?

Vielen Dank schonmal 🙂

21.11.2007 - 02:22 Uhr

typeof(T).AssemblyQualifiedName ist meiner Meinung nach noch vorzuziehen, da er, wie der Name schon sagt, "qualifiziert" ist.

20.11.2007 - 15:24 Uhr

Vielleicht auch noch interessant float's mobile agent

06.11.2007 - 13:27 Uhr

private void textBox1_KeyDown(object sender, KeyEventArgs e)
{
	switch (e.KeyData)
	{
		case Keys.Left:
		case Keys.Right:
			// Dein Code
			e.Handled = true;
			break;
	}
}

Dann musst du nix zurück setzen...

23.09.2007 - 15:23 Uhr

Manchmal frage ich mich wirklich was so in google eingegeben wird 😁

Erster Treffer bei der Suche nach "task scheduler .net" bringt dich zu dieser Seite.

Ich benutze die Library selbst unter Vista und kann nichts schlechtes berichten - im Gegenteil, läuft äußerst komfortabel!

21.09.2007 - 13:36 Uhr

Da liegt dann aber auch der Widerspruch: Ein Postback erfordert klassischerweise ein erneutes Laden der Seite (serverseitig wird ja die gesamte Seite einmal neu erstellt), dein Javascript soll aber im Kontext der "alten" Seite ausgeführt werden.

Du hast denk ich 2 Möglichkeiten:

  1. Du verwendet AJAX um einen asynchronen PostBack auszuführen (Daten in die DB schreiben, alles serverseitige eben) und führst danach dein JavaScript aus

  2. Du machst einen "richtigen" synchronen Postback und schreibst beim Laden der Seite beispielsweise im body onLoad ereignis dein script rein

Ich persönlich würde die erste Möglichkeit bevorzugen, dehnn im Prinzip ist es ja genau das was du machen willst -- asynchron serverseitig etwas ausführen, und danach das Fenster zeitversetzt schließen.

21.09.2007 - 13:26 Uhr

Wenn du bei einem Button clientseitig Javascript ausführen willst, muss am Ende immer ein "return false;" stehen -- damit wird der eigentliche PostBack verhindert.

09.09.2007 - 11:24 Uhr

Evtl. helfen dir auch generische Methoden weiter, da definierst du beim Methodenaufruf den Typ

08.09.2007 - 15:03 Uhr

Oder du benutzt eine Kombination aus Datum in die Registry schreiben und Feststellen ob das Datum geändert wurde. Dazu könntest du beispielsweise bei jedem Programmstart das aktuelle Datum speichern und mit dem letzten vergleichen -- wenn das letzte in der Zukunft liegt hat der User die Zeit verstellt. (Das Speichern des Datums muss wiegesagt verschlüsselt geschehen, da man ja sonst das Programm ohne weiteres austricksen könnte 😉)

Gruß
DCoder

06.09.2007 - 11:32 Uhr

In den Properties deines Projektes unter "Debug" kannst du ganz unten "Enable the Visual Studio Hosting process" aktivieren / deaktivieren (nunja, so heißt es in der englischen version, sollte aber kein Problem sein das zu finden 😉)

03.09.2007 - 03:51 Uhr

Hm, du gibst mir doch jetzt grad eigentlich nur Recht, oder 😉

menu.Closed+= new EventHandler(menu_clicked);

hier ist der sender dein "menu"

menu.ButtonAuswertung.Click+=new EventHandler(menu_clicked);

hier ist der sender der Button "ButtonAuswertung"

Also entweder du greifst nicht immer über den sender auf das menu form zu, sondern speicherst eine Referenz in deiner Hauptform ab oder du benutzt sender, was dann aber auch nur für einen EventHandler eines gleichen Basistypen gilt!

Sprich: Der SENDER ist von dem Typ, bei dem du dein Event registrierst!

03.09.2007 - 03:26 Uhr

Naja... 😉

Kurz: "as Menu" wird zu "as Button".

Aber so wie ich das sehe registrierst du im Click Eventhandler deines Buttons (ButtonAuswertung) die Methode "menu_clicked". Sender in dieser Methode wird also "ButtonAuswertung" sein. Sprich du kannst in "menu_clicked" über sender auf den Button zugreifen.

03.09.2007 - 03:17 Uhr

Ich würd jetzt mal tippen "sender" ist nicht dein Form sondern dein Button. Versuch mal auf Button zu casten, damit sollte es gehen.

31.08.2007 - 10:37 Uhr

Tut mir leid dich enttäuschen zu müssen 😉

Der Nickname DCoder stammt aus einer seeeehr langen Zeit her wo ich das in jüngeren Jahren als Anspielung auf decoder irgendwie witzig fand)

*räusper* jetzt schnell weg 😁

Gruß
DCoder

31.08.2007 - 10:20 Uhr

Hi mbk_chilli,

du musst dazu im Solution Explorer das Kontext Menü vom Setup Projekt öffnen. Hier kannst du dann unter View -> User interface den "Installation Folder" Dialog einfach löschen.

Gruß
DCoder

31.08.2007 - 09:53 Uhr

Hallo,

ich habe unter Vista Visual Studio 2008 Beta 2 laufen.
Unter Vista ist ja standardmäßig .net fw 3.0 installiert, 3.5 Beta 2 kam durch VS2008 dazu.

Jetzt habe ich eine WPF Anwendung (basierend auf 3.0) die ich gerne in ein Setup Projekt (das von VS) packen möchte. Bei den Prerequisites kann ich allerdings nur 2.0 oder 3.5 auswählen! Sprich das Setup bzw. der Bootstrapper will dann bei der Installation auch gleich 3.5 installieren...

Weiß jemand wie man explizit NUR das 3.0 fw deployen kann? (Das Framework soll im Setup integriert, nicht runtergeladen werden)

Vielen Dank schonmal, steh total auf dem Schlauch 🙁

Gruß
DCoder

13.08.2007 - 21:12 Uhr

Oder du benutzt Visual Studio 2005 in Verbindung mit Expression Blend -- meiner Meinung nach das beste programm um XAML Oberflächen zu designen.

27.07.2007 - 14:57 Uhr

Unter Umständen verändert deine Anwendung innerhalb ihres verzeichnis Dateien oder legt welche neu an. Dadurch wird dann deine gesamte Anwendung gleich neu kompiliert. Dadurch soll erreicht werden, dass Änderungen an der Anwendung direkt "übernommen" werden. Allerdings passiert es eben auch, wenn du nur eine datei im gleichen verzeichnis anlegst oder überschreibst etc.

Gruß
DCoder

23.06.2007 - 19:36 Uhr

Warum machst du denn überhaupt eine "Weiterleitung" rein? Kannst du nicht einfach die domain www.blabalbal.de direkt der website zuordnen?

Im IIS musst du ja nur die Hostheader entsprechend erweitern, dann leiten alle domains zur gleichen site.

17.06.2007 - 19:17 Uhr

Hallo irfasirfas,

das hängt natürlich stark davon ab wie deine Anwendung arbeitet. Wie sind die Clients mit dem Server verbunden? Wie handelts du die Verbindung zwischen einem Client und dem Server?

Ein bisschen Code würde auch nicht schaden 🙂

Gruß
DCoder

13.06.2007 - 18:55 Uhr

Du erstellst in frm_Anmeldeinformationen.button_AMI_OK_Click eine neue Instanz von frm_Main. Und in dieser Instanz rufst du dann auch die Methode auf, die "nicht geht".

Die neue Instanz hat nichts mit deinem eigentlichen Form zu tun - die Änderungen werden in der "unsichtbaren" Form direkt im Speicher übernommen, aber logischerweise nicht in deiner eigentlichen Instanz.

Du könntest die Instanz von frm_Main an frm_Anmeldeinformationen weitergeben, und dann direkt in dieser Instanz die Methode connectToAD aufrufen. (Übrigens kannst du dir das ganze Prozedere mit delegates in dem Fall sparen, die Methode kann ohne weiteres direkt aufgerufen werden)

Gruß
DCoder

07.06.2007 - 14:18 Uhr

Tut mir leid den alten Thread nochmal rauszukramen, aber die Seite mit den wichtigen Infos ist leider schon seit mehreren Tagen down 🙁

Ist der WMI Ansatz die einzige Möglichkeit, oder verweist der Artikel noch auf eine andere Herangehensweise?
(Ziel ist es die IP Adresse eines bestimmten Netzwerkadapters zu ändern, inkl. DNS, Gateway, Subnet...)

Gruß
DCoder

02.06.2007 - 11:38 Uhr

Evtl. für dich interessant: floAt's Mobile Agent

Wie schon gesagt ist eine Schnittstelle für alle Mobiltelefone nich unbedingt drin, aber je nachdem reicht das ja vielleicht für dich aus (Stichwort Obex)

Gruß
DCoder

29.05.2007 - 19:17 Uhr

Eine Bibliothek in dem Sinne ist mir zwar jetzt nicht bekannt, dein Problem sollte aber ohne weiteres über ActiveDirectory lösbar sein.

Dafür benötigts du auf jeden Fall den System.DirectoryServices Namespace (per add reference erst hinzufügen).

Grob aus dem Kopf (nich getestet)


object[] serverBindings = new object[1];

// ":[port]:[hostheader]
serverBindings[0] = ":80:domain.de";

// "IIS://[server]/W3SVC/[websiteID]"
DirectoryEntry website = new DirectoryEntry("IIS://localhost/W3SVC/1");
website.Properties["ServerBindings"].Value = serverBindings;

website.CommitChanges();
website.Dispose();

Was natürlich jetzt total fehlt ist das Auslesen der vorhandenen Bindings etc. Aber das funktioniert alles nach dem gleichen Prinzip, sollte kein Problem sien damit einen kleinen "Wrapper" zu schreiben 🙂

Gruß
DCoder

12.05.2007 - 19:20 Uhr

Definier doch in deinem Thread ein Event was am Ende seiner Arbeit aufgerufen wird.

08.05.2007 - 12:15 Uhr

client- oder serverseitig?

12.04.2007 - 17:13 Uhr

Hab zwar jetzt mal so gar keine Ahnung vom Compact Framework - aber vielleicht gibts ja sowas wie Environment.SpecialFolder dafür

Gruß
DCoder

11.04.2007 - 20:50 Uhr

Assembly.LoadFile 😉

02.04.2007 - 19:18 Uhr

Na dann bin ich ja froh, dass ich auf dem Server Administrator bin 😁
IIS für die Site etwas umzukonfigurieren ist also kein Problem.

Danke euch beiden 🙂

[EDIT:Nachtrag]
Eine Url in der Form http://www.unternehmen.de/referenzen find ich persönlich eigentlich um einiges einfacher zu lesen und aussagekräftiger.
Google kann man die Links schön per Google-Sitemap geben, damit der sich nich im Ajax Dschungel verläuft 😉
[/EDIT]

02.04.2007 - 18:45 Uhr

Hallo,

ich weiß das URL Rewriting teilweise unterschiedlich bewertet wird, daher sage ich mal vorab, dass es hier nicht anders geht 😉

Ich habe eine asp.net anwendung, die ihre Navigation per Ajax regelt. Sprich bei allen Unterseiten bleibt man auf der gleichen Url hocken.

Natürlich ist es jetzt kein Problem einen Link in form von domain.de/Default.aspx?site=xyz zu benutzen, aber gewünscht ist nunmal die Form: domain.de/xyz

Jetzt hab ich mal zum kleinen Test das Application_BeginRequest Event in der global.asax benutzt um per Context.RewritePath die Url umzuschreiben. Bei Anforderungen direkt an die domain.de funktioniert das zwar, aber wenn ich jetzt domain.de/xyz schreibe versucht er mir halt was aus dem Verzeichnis xyz auszulesen und meldet sich logischerweise prompt mit 404 😉

Hat jemand da evtl. Ahnung wie man das angehen könnte?

Danke
DCoder

18.03.2007 - 20:40 Uhr

Kann das Programm bei mir unter Windows Vista (x64) leider nicht starten 🙁
Vielleicht bringen dir die "Problemdetails" was:

Description:
Stopped working

Problem signature:
Problem Event Name: CLR20r3
Problem Signature 01: vokabeltrainer.exe
Problem Signature 02: 1.0.0.0
Problem Signature 03: 45fd85c1
Problem Signature 04: Vokabeltrainer
Problem Signature 05: 1.0.0.0
Problem Signature 06: 45fd85c1
Problem Signature 07: 15
Problem Signature 08: 13
Problem Signature 09: System.BadImageFormatException
OS Version: 6.0.6000.2.0.0.256.1
Locale ID: 1031

BadImageFormat hört sich doch schonmal nett an 😉

Gruß
DCoder

P.S.: Hab jetzt gar nich in den Source geschaut, einfach nur die Exe im Debug Verzeichnis ausgeführt

27.01.2007 - 20:59 Uhr

@EvilTK
Deine Lösung find ich persönlich auch besser -- aber in deiner schleife müsste statt vals[0] glaub ich vals_ stehen, oder?

Gruß
DCoder