Vielen Dank BerndFfm,
genau sowas habe ich mir vorgestellt.
Besten Dank und einen schönen Abend noch
Danke für die schnelle Antwort!
Ich wollte mir die Mühe eigentlich ersparen, bei jedem Radiobutton das OnCheckChange Event zu benutzen.
Das wären nämlich bei 4x3 Radiobuttons 12 Methoden.
Gibts da nichts eleganteres?
Hallo zusammen,
ich stehe gerade auf dem Schlauch.. ich suche eine gute Möglichkeit,
wie ich Radiobuttons synchronisieren kann.
Ich habe 3 Groupboxen mit jeweils 4 Radiobuttons (siehe Bild).
Ich möchte die Radiobuttons so synchronisieren, dass immer alle Radiobuttons einer Zeile aktiviert werden.
Im Bild wäre das z.B. die oberste Zeile. Klickt man nun einen Radiobutton in der 2. Zeile an,
so sollen in allen Groupboxen die 2. Zeile markiert werden.
Über hilfreiche Ideen wäre ich sehr dankbar.
Gruß
mrdjoker
Hallo zusammen,
wie ich soeben festellen musste, ist es gar nicht so leicht, dass Aufnahmedatum eines Bildes auszulesen.
Folgende Versuche liefern falsche Ergebnisse:
fileInfo.LastWriteTime
fileInfo.LastAccessTime
fileInfo.LastCreationTime
Nach ewiger Suche habe ich nur ein Buch gefunden, wobei die entscheidende Seite fehlt:Google Bücher
Kann mir jemand einen Tip gegben?
Vielen Dank schon einmal..
cheers mrdjoker
//EDIT
man muss unter dem Stichwort EXIF suchen..
Vielen Dank Computer_Case!
Die Lösung ist zwar nicht die schönste, reicht aber für meine Zwecke.
Gruß
mrdjoker
Hallo zusammen,
helft mir doch mal bitte schnell auf die Sprünge.
Ich möchte ein MonthCalendar Control ohne Rahmen anzeigen lassen.
Das ist bestimmt ganz easy, nur irgendwie stehe ich gerade auf dem Schlauch.
Gruß
mrdjoker
Hat keinen größeren Sinn 😉
Das soll nur nen kleines Hilfstool für die Mitarbeiter sein, eine zentrale Datenbank ist dafür nicht notwendig.
Natürlich greifen nicht alle 1000 Benutzer auf eine Access DB zu.
Jeder hat eine lokale zu liegen.
@ FZelle
Wer sagt denn, dass ich am Schluss über so etwas nachdenke?
Ich habe dem Kunden gerade mal einen Prototypen gegeben.
Ich versteh trotzdem was du meinst 😉
Machen wir uns nichts vor, eine richtige Datenbank sollte zumindestens Rollbacks durchführen können,
schon allein aus dem Grund ist MS Access eher eine Spiele-Datenbank.
Gibt es nun einen Weg, wie ich trotzdem MS Access benutzen kann, ohne MDAC updaten zu müssen?
Der Vorteil an Access ist nämlich, dass die Daten mit Office-Mitteln leicht weiter verarbeitet werden können, daher würde ich nur ungern auf Access verzichten.
Vielen Dank schon mal für euer Feedback.
Zu 1. Der Kunde hat über 1000 PCs herumzustehen, da ist es wirtschaftlicher mein Tool den Gegebenheiten anzupassen, als umgekehrt.
Zu 2. Warum OLEDB: Weil Access laut versch. Foren am performantesten via OLEDB kommunizieren kann.
Zu 3. SQLite oder Firebird werden doch auch mit Api's aus der MDAC angesprochen?
Wenn ich dich richtig verstehe soll ich die Connection einfach mal via ODBC aufbauen?
Ich hoffe mal, dass ich dann keine Meldung bekomme, dass Version 2.6 benötigt wird.
Ich teste das mal morgen..
Ich benutzte OLEDB:
public int ManipulateDB(string queryString)
{
int result = 0;
using (OleDbConnection sqlConn = new OleDbConnection(MyConString))
{
OleDbCommand sqlCmd = new OleDbCommand(queryString, sqlConn);
sqlConn.Open();
result = sqlCmd.ExecuteNonQuery();
sqlConn.Close();
}
return result;
}
Mein Programm ist ein Mitarbeiter Arbeitszeiterfassungstoool.
Es werden also nur ein paar Inserts, Update und Delete Statements abgeschickt.
So ein Mist!
Da bleibt mir wohl nichts anderes übrig, als auf XML zurück zu greifen.
Na damit das Programm ordentlich mit der Access DB kommunizieren kann.
Zur Zeit ist es beim Kunden einfach nicht lauffähig.
verwendetes Datenbanksystem: MS Access
Hallo zusammen,
ich bekomme folgende sinngemäße Fehlermeldung beim Zugriff auf MS Access:
"Es wurde nur die MDAC Treiber Version 2.51 gefunden, gebraucht wird 2.6"
Leider ist es dem Kunden unmöglich eine neue Version von MDAC zu installieren.
Gibt es eine Möglichkeit mein Programm mit der MDAC Version 2.51 zu kompilieren?
Vielen Dank
sonnige Grüße
mrdjoker
Man kann Dateien kopieren, auch wenn sie in Benutzung sind.
Wenn ich mich richtig erinnere, gibt es dazu ein Flag, ReadOnly oder so.
Momentan habe ich keine Entw. Umgebung, daher kann ich es dir nicht posten.
Ich versteh es nicht, jetzt funktioniert es mit einmal.
Dabei habe ich gar nichts am Quellcode/Rechner geändert.
Trotzdem Danke für eure Lösungsvorschläge!
Viel Spass beim 3. Advent..
Ich habe eben deinen Code bei mir ausprobiert und er funktioniert einwandfrei, sofern das Zielverzeichnis existiert und die Datei nicht vorhanden ist.
Genau das ist mein Problem.
Die Methode ist sowas von simpel und funktioniert aus unerklärlichen Gründen nicht.
@gX|progs
Oh sorry, da habe ich wohl vergessen, die Zieldatei vorher zu löschen.
Selbst mit überschreiben = true bekomme ich eine IOExeption, siehe oben.
Heute Abend werde ich mal das Copy von Fileinfo probieren.
Ich habe heute erst mit dem Projekt angefangen, noch benutze ich keine Threads.
Ich habe mal nen Screenshot von meiner Methode gemacht:
Bei FileNotFoundException steht:
sourceFileName wurde nicht gefunden.
Meine Fehlermeldung sagt aber, dass die Zieldatei nicht gefunden wurde.
Doch die soll doch erst erstellt werden, warum prüft er da, ob die vorhanden ist?
Irgendwas scheint bei mir richtig kaputt zu sein. Wenn die Zieldatei bereits besteht, dann bekomme ich mit
System.IO.File.Copy(src, dest,true);
eine IOExeption "Die Datei ist vorhanden."
Dabei sagt doch das True, dass die Datei überschrieben werden soll.
Hallo Zusammen,
ich versteh die Welt nicht mehr.
Warum wirft File.copy() eine FileNotFoundExeption:
String src = "c:\\AUTOEXEC.BAT";
String dest = "d:\\backup\\AUTOEXEC.BAT";
System.IO.File.Copy(src, dest);
Als Fehlermeldung erhalte ich
Die Datei "d:\backup\AUTOEXEC.BAT" konnte nicht gefunden werden.
Es scheint so, als würde er die Quell und Ziel Datei vertauschen.
Bin ich total blind, was mache ich falsch?
Socket ist schon das richtige Stichwort.
Ich empfehle dir folgenden Artikel zu lesen:
[Tutorial] Client-/Server-Komponente über TCP-Sockets
Den Client kannst du in deinem Fall natürlich weglassen.
Welchen Zweck soll das ganze haben?
Das ist die entscheidende Frage.
Datenaustausch zwischen 2 Threads über Textdateien/Datenbanken ist aus meiner Sicht total überflüssig.
Die beiden Threads können ohne Probleme untereinander kommunizieren, da braucht man keine externe Datenablage.
Hallo snupi
Wie oft möchtest du dein Problem noch durchkauen?
herbivore hat dir doch schon eine passende Antwort geliefert:
textdatei gleichzeitig lesen (TH1) und schreiben (TH2) threadsafe ?
Gruß
mrdjoker
Ist es nicht besser, Threading zu benutzen, wenn man lange auf etwas warten muss?
Z.B. wenn man 500 Rechner anpingen möchte.
Mit einem Thread und einem Timeout von 200ms braucht man maximal 100 Sekunden.
Mit 64 Threads und dem gleichen Timeout braucht man rechnerisch 1,56 Sekunden.
Wenn man zu den 1,56 Sekunden noch etwas Schedulingzeit hinzufügt ist man
trotzdem um einiges schneller als hätte man einen Thread verwendet.
Korrigiert mich, wenn ich falsch liege.
Hallo,
64 Threads habe ich verwendet, da mein Programm mehrere WMI Queries
über das Netzwerk schickt und diese dann in der DB logg
und das geht mit mehreren Threads nun mal schneller.
Interessant wäre auch noch zu wissen mit welcher Technologie die Datenzugriffe erfolgten.
Ich habe eine OleDbConnection verwendet.
da beim 1. Aufruf/Ausführung die "Kaltstartproblematik" greifen könnte
Die Kaltstartproblematik wurde im Test bereits berücksichtigt.
Gruß
mrdjoker
Danke euch beiden.
Die Performance von Firebird werde ich morgen testen.
Ein kleine Test Datenbank mit Firebird anzulegen scheint etwas Zeitaufwändiger zu sein.
Und danke für den Link mit den Datenbank Empfehlungen.
Ich hatte zwar die Forensuche bemüht nur leider findet man bei Datenbanken sehr viele Beiträge.
Inwzischen habe ich MS Access mit SQL Server Compact 3.5 verglichen:
Die Testdatenbanken bestanden aus einer Tabelle, welche 2 Spalten hatte.
Eine Spalte mit einem Autowert/Sequenz und eine Spalte mit Text.
1 Thread mit 1000 inserts:
Access: 46 Sekunden
Compact: 27 Sekunden
64 Thread mit jeweils 100 Inserts:
Access:** 5 Minuten**
Compact: **:::
Hallo Zusammen,
ich suche eine performante Embedded Datenbank (Datenbank, die ohne Server läuft).
Momentan muss ich mein Programm stark zügeln,
da MS Access nur ca 270 Insert Anweisungen pro Sekunde verarbeiten kann.
Ich habe folgende Datenbanken gefunden:
SQL Server Compact 3.5
MySQL Embedded Server 5.1
SQLite
Habt ihr noch weitere Vorschläge und welche ist in Sachen Performance zu empfehlen?
//Edit
Die Datenbank sollte genauso wie Access ohne Installation auskommen
und muss nicht zwingend mehrfach User fähig sein.
Gruss
mrdjoker
Ja habe ich, bzw. so hat es der Designer für mich gemacht.
Ich stelle gerade noch ein anderes Phänomen fest:
Nach 1x compilieren, bekomme ich gar keinen Status ausgegeben,
beim 2x Compilieren wird mir "ab und zu" was ausgegeben.
Mein BackgroundWorker liest ca 20 Webseiten aus und soll auf dem ToolStripStatusLabel jeweils die URL ausgeben, die er gerade einliest.
Beim 2. Compilieren bekomme ich wenigstens jede 5. URL ausgegeben.
Ich kann mir das nicht erklären.
Hallo Zusammen,
langsam reicht es mir mit dem ToolStipStatusLabel,
das ist jetzt schon mein 2. Projekt bei dem Textänderungen nicht übernommen werden!
Ich habe einen BackgroundWorker laufen, der seinen Status an das Formular melden soll:
private void backgroundWorkerGetNews_ProgressChanged(object sender, ProgressChangedEventArgs e)
{
String status = (string)(e.UserState);
Console.WriteLine("GetNews_ProgressChanged " + status);
toolStripStatusLabel1.Text = status;
}
Auf der Console bekomme ich den Status ausgegeben, nur leider nicht auf dem Formular.
Was mich wundert ist, dass die Ausgabe auf einem System.Windows.Forms.Label korrekt erfolgt.
Woran kann es liegen, dass auf einem Label der Text korrekt angezeigt wird
und auf einem ToolStripStatusLabel nicht?
Hoffentlich kann mir jemand weiterhelfen, ich bin am verzweifeln..
In meiner Umgebung werden die Pings nicht geblockt, das habe ich schon getestet.
Wer noch mehr Infos zum Ping haben möchte, ich habe hier eine sehr umfassende Seite gefunden:
http://it-republik.de/dotnet/artikel/Verbindungstest-0551.html
//Edit
Dieses Codebeispiel könnte auch noch helfen:
PING einer hosts ohne admin rechte
Sehr schön, dann mach ich mich mal ans Werk.
Was mich nur wundert ist, dass bisher niemand auf die selbe Idee gekommen ist.
Außer einer Unix implementation habe ich bisher zu diesem Thema nichts gefunden.
Hallo zusammen,
ganz kurze Frage:
Ist es mit C# oder sogar mit Java möglich einen ICMP Tunnel aufzubauen?
Vielen Dank schon mal für die Antworten..
Gruß
mrdjoker
Halte dich fest, hier gibts nen richtig geiles Beispiel:
Gewusst wie: Verwenden von Threadpools (C#-Programmierhandbuch)
Beim nächsten Post bitte [Hinweis] Wie poste ich richtig? beachten, vorallem 1.1.1
-1 bedeutet der String wurde nicht gefunden.
String.contains ist evtl. besser angebracht.
Du könntest einen Broadcast Ping absenden und das Echo mitsniffen.
Damit kannst du alle Rechner ermitteln, die nicht hinter einem Router sind.
Ich melde schonmal mein Interesse für dein Programm/Sourcecode an.
Deine Lösung kann ich nämlich sehr gut gebrauchen.
Gruß
mrdjoker
Cool, Danke Tom
Das kann ich sehr gut in einem Projekt von mir verwenden.
global Hooks ist das Stichwort!
Du könntest das Aufpoppen des ICQ Fensters mittels AutoIT registrieren und anschließend deine Anwendung minimieren.
Irgendwo hier im Forum gabs sogar eine AutoIT Dll, die man einfach in sein Projekt einbinden konnte.
//Edit
http://www.lancelarsen.com/Blog/tabid/72/EntryId/48/AutoIt-C-Helper-Library.aspx
2% CPU Auslastung sind immer noch viel zu viel.
Ein Server/Client Chat läuft normaler Weise bei 0% Auslastung, es sei denn, es sind sehr viele Clients angemeldet.
Teile deine Anwendung und teste, ob der Client oder der Server die Last verursacht.
Verständnisfrage:
Du hast ein Programm mit 2 Forms?
Wenn ja, dann ist es ganz einfach, du speicherst eine Referenz von Form2 in Form1.
In Form1 rufst du dann die Funktion
form2.addNachricht(text)
auf, die du natürlich in Form2 implementiert haben musst.
Das hört sich ganz stark nach der standard Frage an: [FAQ] Kommunikation von 2 Forms
Gruß
mrdjoker
Du könntest auch die Ordnerüberwachung über die Ordnereigenschaften einschalten.
Anschließend wird jeder Zugriff in der Ereignisanzeige geloggt.
Allerdings denke ich, dass EasyHook die bessere Wahl sein wird.
Gruß
mrdjoker
Okay "überall" ist sehr schwammig.
Vereinfacht habe ich 2 KLassen: GUI und BusinesLogic
In der Gui wird die Liste in einer ListBox angezeigt und die Klasse EmailController arbeitet mit der Liste.
Wenn ich das jetzt richtig verstanden habe, soll ich die Liste in der Klasse EmailController ablegen.
Da die Gui eine Instanz des EmailControllers beinhaltet, kann diese auch auf die EmailListe zugreifen.
Eine interessante Diskussion zum Thema gibts hier:
Die ideale Architektur für Businessapplikationen?
Hallo zusammen,
ich habe in meinem Projekt eine Email Liste, auf die ich ständig zugreifen muss.
Nun ist die Frage, wo lege ich diese ab, um immer Zugriff zu haben?
Momentan liegt die Liste in einer Access DB, auf die Access DB hat eine Singelton Klasse Zugriff.
Leider unterstützt Access nur ca 300 Abfragen pro Sekunde, daher möchte ich die Emailliste in den Arbeitsspeicher ablegen:
List<String> listEmail = new List<String>();
Soll ich die Liste in die Forms Klasse packen?
Vor wenigen Wochen, hätte ich die Liste in einer Singelton Klasse abgelegt, doch davon ist ja abzuraten.
Ich freu mich schon auf Vorschläge..
Gruß mrdjoker
Guten Morgen,
ohne es genau zu wissen, würde ich sagen, dass es nicht möglich ist.
Ich habe noch keine Software gesehen, die das machen konnte.
Sowas kann man denke ich nur im Bios einstellen.
Gruß
mrdjoker
public class TEST { int q; public int Q { get { return q; } set { q = value; } } }
Setze die Klasse einfach static und du kannst immer darauf zu greifen.
//Wobei herbivore natürlich Recht hat, dass die Parameterübergabe sauberer ist.
Das Stichwort lautet: Threadprogrammierung!
Nehme am besten in Verbindung mit einer GUI den BackgroundWorker!
Cooles Tutorial, hier werde ich in Zukunft öfter rein schauen.
Sorry für den Augenkrebs =)