Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Portal
  • |
  • Mitglieder
Beiträge von DjBepy
Thema: DataTable sortiert ab Nummer 10 nicht mehr numerisch
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Die Ticker-Variable selber ist int & wird dem Feld im DataTable direkt zugewiesen.

Ich habe gerade Mal den Start Wert des Tickers auf 1000 gesetzt & jetzt sortiert er "korrekt".

Kann ich dem Feld irgendwie explizit sagen, dass es ein INT-Feld ist?

Thema: DataTable sortiert ab Nummer 10 nicht mehr numerisch
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hallo :-)

Ich habe eine Liste von Mitarbeitern mit Angaben, an welchen Tagen die da und an welchen die nicht da sind in einer DataTable gespeichert. Diese Liste benötige ich um den Dienst-Plan zu erstellen.

Sobald ein Mitarbeiter für den Dienst gesetzt wurde, soll er "ans Ende" der Liste gesetzt werden, damit erst alle Anderen wieder dran kommen. Dafür habe ich ein Column "Ticker" der mit jedem Eintrag hoch gezählt wird

Sobald einer ausgewählt wird, wird der Ticker wieder um eins erhöht und in den Ticker-Eintrag des ausgewählten Mitarbeiter geschrieben. Danach wird die Liste mit

dtHotline.DefaultView.Sort = "Ticker ASC";
                                dtHotline = dtHotline.DefaultView.ToTable();
wieder neu sortiert.

Das funktioniert auch genau so lange, bis der Wert im Feld Ticker die 10 erreicht. Danach bleibt der Eintrag mit dem Ticker 10 & aufwärts immer an erster Stelle in der DataTable, so als wenn er nicht nummerisch sortiert, sondern die 1 der 10 halt kleiner als die 9 des anderen Eintrag ist.

Ich hatte ursprünglich über die Anzahl sortiert, jedoch wird ein Mitarbeiter nach dem Urlaub dann erst mal x Mal eingesetzt, bis er auf dem gleichen Stand ist wie der Rest und das ist nicht gewollt.

Jemand eine Idee? Ich bin auch für andere (funktionierende) Lösungsansätze offen :-)

Thema: Sehr langsamer FTP-Upload
Am im Forum: Netzwerktechnologien

So, Lösung gefunden: Es lag wirklich an der Buffer-Größe. Wenn ich die jetzt mit 32*1024 übergebe, dann geht es auch in 1,5Min :)

Thema: Sehr langsamer FTP-Upload
Am im Forum: Netzwerktechnologien

[zitat entfernt]
Habe ich schon Versucht. Ich muss zuvor ein Ordner auf dem FTP-Server erstellen, in das die Dateien kopiert werden sollen. Wenn ich das mache, dann bekomme ich beim Upload-Versuch über WebClient die Meldung vom Server "530: Befehle in falscher reihenfolge gesendet" :(

Aber ich versuche es jetzt mal, in dem ich den Buffer erhöhe . . . .

Thema: Sehr langsamer FTP-Upload
Am im Forum: Netzwerktechnologien

Ahoi zusammen :)

ich habe bei mir ein FTP-Upload eingebaut:

public void UploadFile(string strgOrdnerName, string localFilePath, Int32 bufferSize)
        {
            string strgUri = "ftp://" + Properties.Settings.Default.strgFtpServerInek + "/" + strgOrdnerName+"/"+Path.GetFileName(localFilePath);
            System.Net.FtpWebRequest ftpDatenUpload = (FtpWebRequest)System.Net.FtpWebRequest.Create(new Uri(strgUri));
            ftpDatenUpload.Credentials = new NetworkCredential(Properties.Settings.Default.strgFtpUserinek, Properties.Settings.Default.strgFtpPasswortInek);

            if (bufferSize < 1) bufferSize = 1024;

            FileStream tempStream = new FileStream(localFilePath, FileMode.Open);
            byte[] buffer = new byte[bufferSize];
            Int64 noOfBuffers = tempStream.Length / Convert.ToInt64(bufferSize);//rundet automatisch ab
            Int32 lastBufferSize = Convert.ToInt32(tempStream.Length - noOfBuffers * bufferSize);

            ftpDatenUpload.Method = WebRequestMethods.Ftp.UploadFile;
            Stream ftpStream = ftpDatenUpload.GetRequestStream();

            //Buffer die komplett ausgelesen werden
            for (int i = 0; i < noOfBuffers; i++)
            {
                tempStream.Read(buffer, 0, buffer.Length);
                ftpStream.Write(buffer, 0, buffer.Length);
            }

            if (lastBufferSize > 0)
            {
                //letzter Buffer der nur zum Teil ausgelesen wird
                tempStream.Read(buffer, 0, lastBufferSize);
                ftpStream.Write(buffer, 0, lastBufferSize);
            }

            ftpStream.Close();
            tempStream.Close();
        }

Wenn ich darüber eine 10MB Datei hochlade dauert das etwa 7Min. Lade ich die gleiche Datei mit FileZilla hoch, dann dauert es nur 30Sekunden.

Woran liegt das?

P.S. Es ist genau die selbe Datei, der selbe Server und der selbe Rechner, auf dem es ausgeführt wird.

Thema: Thread übergreifendes logbuch
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Ahoi zusammen

Ich habe ein nettes Frontend erstellt in dem teilweise 2 -3 Threads parallel laufen.

Jetzt habe ich ein "globales" Logbuch erstellt, auf das alle zugreifen:
Eine Static-Funktion in der Config-Klasse, die eine Text-Datei im CSV-Format füllt bzw. immer wieder eine Zeile anfügt.

Wie kann ich jetzt den Zugriff auf diese Klasse "puffern", für den Fall das 2 oder mehr Threads gleichzeitig versuchen ins Logbuch zu schreiben?

Ich bin jetzt auch nicht darauf epicht unbedingt den StreamWriter weiter zu nutzen. Aber wenn eine CSV-Datei am Ende dabei rum kommt wäre das super Jemand ne Idee?

Viele Grüße,
Benny!?!

Thema: Beim Debug unter VS läuft es super, gebaut friert Form nach ner Zeit ein
Am im Forum: GUI: Windows-Forms

Ich habe schon versucht so viel wie möglich zusammen zu fassen. Diese Form hat halt nur dutzende von Buttons/Menüs + Sichten und vieles wird über ein BackgroundWorker abgefrühstückt, damit die Form nicht einfriert ;)

Habe jetzt begonnen alle Zugrife auf irgendwelche Form-Elemente zu invoken und logge fleißig mit . . . vielleicht finde ich den schwarzen Peter ja auf die Art & Weise . . .

Thema: Beim Debug unter VS läuft es super, gebaut friert Form nach ner Zeit ein
Am im Forum: GUI: Windows-Forms

Wie kann ich VS sagen, er soll sich in ein laufendes Programm klemmen? Es kommt ja keine Fehlermeldung, so dass ich über Details oder so gucken könnte, es friert ja einfach ein & gut is . . . .

Thema: Beim Debug unter VS läuft es super, gebaut friert Form nach ner Zeit ein
Am im Forum: GUI: Windows-Forms

Ich habe jetzt am Anfang jeder Funktion die Funktion hinzugefügt, die den aktuellen Funktionsnamen ins Logbuch schreibt . . . so habe ich vielleicht ein Anhaltspunkt, ob es immer nach Ausführen einer bestimmten Funktion ist . . .

@mogel: Gerne, aber meine Hauptform hat 2659Zeilen Code, ich glaube, das sprengt etwas den Rahmen ;)

Thema: Beim Debug unter VS läuft es super, gebaut friert Form nach ner Zeit ein
Am im Forum: GUI: Windows-Forms

Ahoi :)

Danke für den Hinweis.

Wenn Threads bzw. der BackgroundWorker genutzt wird, läuft alles Invoke.

Das komische an der Sache ist, das im Hintergrund nichts läuft. Teilweise ist aus der Hauptform einfach eine neue Form geöffnet, teilweise nicht.

Es wird dann vom User an CSV-Dateien gearbeitet, die ausm Explorer heraus geöffnet wurden. Nach der Bearbeitung will der User wieder zurück ins Programm, um eine neue Verarbeitung zu starten & PENG, geht nicht, Fom sind eingefroren.

Hatte schon überlegt ob es an der Browser-Komponente liegt, die ich als Explorer missbrauche & der versucht was zu aktuallisieren. Komplett raus genommen, gleiches Phänomen.

Auch habe ich die Funktionen zur Verbindung mit der DB in Try-catch gepackt, falls er versucht beim Focus die DataSource der DataDridView zu aktuallisieren, die Verbindung in ein Timeout gelaufen ist & er es nicht hin bekommt die neu aufzubauen. Hilft auch nicht.

Was mich ja so stuzig macht, ist dass es im DM vom VS ohne Probs rennt & gebaut laufend friert :(

Thema: Beim Debug unter VS läuft es super, gebaut friert Form nach ner Zeit ein
Am im Forum: GUI: Windows-Forms

Ja, leider ist es egal ob ich ne Release- oder ne Debug-Version baue, das Ergebniss ist leider das Gleiche . . .

Thema: Beim Debug unter VS läuft es super, gebaut friert Form nach ner Zeit ein
Am im Forum: GUI: Windows-Forms

Ahoi :)

Ich habe ein Prozess-Steuerungs-Software mit GUI gebaut. Wenn ich das Ganze im Febug-Modus von VS.NET 2010 laufen lasse, rennt die ohne Probleme.

Baue ich jetzt ein Realese und starte das auf div. Rechnern unter div. Usern (Win XP, User haben Admin-Rechte) passiert es laufend, das die Form einfriert, wenn se mal ne Zeit lang im Hintergrund liegt/minimiert ist und dann wieder in Fokus geholt werden soll.

Gibt es da bekannte Ursachen für? Wenn ich dem User VS installiere und das Ganze wieder im Debug-Modus starte, läuft es ohne Probleme :(

Thema: 1. Reihe der DataGridView wird nach unten gespüllt
Am im Forum: GUI: Windows-Forms

Danke für die Antwort, jetzt geht es :)

Es lag an AllowUserToAddRows = true :) Das komische jedoch war, dass die letzte Spalte nie leer war ;) Ich fülle die ja "per Hand" bevor ich die Rows der anderen DataTables hinzufüge & die gefüllte Zeile wurde dann nach unten verschoben. Das war ja das komische. Wenn die immer leer gewesen wäre, hätte ich mir da eher ein Reim drauf machen können ;)

Thema: 1. Reihe der DataGridView wird nach unten gespüllt
Am im Forum: GUI: Windows-Forms

Ahoi zusammen :)

Ich habe eine DataGridView mit vorgegeben Spalten. Wenn ich die Form aufrufe, wird diese je nach Status mit 1, 3 oder 4 Reihen befüllt.

Die erste Reihe gibt es irgendwie immer, selbst wenn ich

DataGridView.Rows.clear()
mache. Da stört im ersten Moment nicht, da die Basis der ersten Reihe ein Feld aus der DB ist, dass auf die Spalten aufgesplitet wird.

Die Reihen 2, 3 & 4 wiederrum rufe ich per DataTable einzeln aus der jeweiligen Tabelle der DB ab und übergebe die Row als ItemArray via

DataGridView.Rows.Add(DataTable.Rows[0].ItemArray)
.

Dabei passiert es jedoch, das diese Rows immer vor die Erste gespüllt werden. Sprich in der Reihefloge her kommt 2, 3, 4, 1. Jemand ne Idee wieso das so ist bzw. wie ich das ändern kann?

Ich habe auch schon versucht alles in eine DataTable zu schreiben & die dann via

DataGridView.DataSource = DataTable
zu binden, aber dann wird nur die eine erste Zeile mit den Standardwerten gefüllt angezeigt, mehr nicht.

Jemand ne Idee?

P.S. Ja, ich habe kontrolliert, ob die DataTable auch wirklich gefüllt ist.

Thema: ODBC/OleDB Verbindung mit einer AS400 aufbauen
Am im Forum: Datentechnologien

Danke @ MarsStein :)

Damit kann der Thread als erledigt geschlossen werden :)

Thema: ODBC/OleDB Verbindung mit einer AS400 aufbauen
Am im Forum: Datentechnologien

Danke für deine konstruktive Kritik . . . wenn Du aber alles gelesen hättest, war es ledeglich ein Hinweis von mir, da in der IBM eigenen Software der / anstelle des . verwendet wird und nicht jeder so ein Schlauberger ist wie Du ;)

Thema: ODBC/OleDB Verbindung mit einer AS400 aufbauen
Am im Forum: Datentechnologien

Ahoi :)

Ich habe es jetzt endlich geschafft den .NET-Provider zu installieren bzw. zu erhalten. Über den kann man dann eine Verbindung zur AS400 aufbauen.

Bei der Angabe der DB + Tabelle in den Abfragen muss man die mit einem . von einander trennen und nicht wie in der Datenübertragungs-Software von IBM mit einem /

Für jeden, der damit auch mal Probleme hat, habe ich die DLL mal als Anhang beigefügt :)

Thema: ODBC/OleDB Verbindung mit einer AS400 aufbauen
Am im Forum: Datentechnologien

Seite 90 ist die Letzte & leer ;)

Ich würde gerne, aber ich finde den nicht . . . aber wie gesagt, laut Programmer's Toolkit ist der installiert, aber wenn ich das Toolkit starte kommt eine Fehlermeldung.

Ich bin jetzt im Dialog mit IBM, so dass die mir mal die neuste Version von der Client Access Software zukommen lassen . . . vielleicht erledigt sich der Fehler dann bzw. ich kann endlich den .NET Provider nutzen . . .

Thema: ODBC/OleDB Verbindung mit einer AS400 aufbauen
Am im Forum: Datentechnologien

@TomLeech: Die ODBC-Verbindung habe ich doch -> IBMDA400. Und wie schon erwähnt funzt die ja auch unter Access, & Co . . . nur über .NET irgendwie nicht . . .

Thema: ODBC/OleDB Verbindung mit einer AS400 aufbauen
Am im Forum: Datentechnologien

So, ich habe mich jetzt durch zich Seiten gewühlt & angeblich wird der .NET-Provider sowie als auch der OleDB-Provider mit der Installation vom ClientAccess installiert . . . laut Setup-Routine ist das auch installiert . . . *nerv*

Thema: ODBC/OleDB Verbindung mit einer AS400 aufbauen
Am im Forum: Datentechnologien

Habe ich hier her:
http://www.connectionstrings.com/as-400#p61

Wenn ich System durch DSn ersetze kommt die Meldung, dass Ihm der Systemname fehlt . . . .

Thema: ODBC/OleDB Verbindung mit einer AS400 aufbauen
Am im Forum: Datentechnologien

Ping geht, ich komme mit Access auf die AS400 drauf, ich kann mit dem ClientAccess-Datenübertratungstool auf die DB zugreifen . . .

Thema: ODBC/OleDB Verbindung mit einer AS400 aufbauen
Am im Forum: Datentechnologien

Jo, die Befehle auf der Seite habe ich alle durch ;)

Wenn ich den OLDB Befehl nehme, behauptet er immer, dass er den Provider nicht finden kann (mein Urpsrungsproblem).

Thema: ODBC/OleDB Verbindung mit einer AS400 aufbauen
Am im Forum: Datentechnologien

bzw. kann ich auch via OleDB auf die AS400 zugreifen? Wenn, wie sieht da der Verbindungsbefehl für aus?

Thema: ODBC/OleDB Verbindung mit einer AS400 aufbauen
Am im Forum: Datentechnologien

Da war er, der Wald vor lauter Bäumen :D

Habe dann jetzt auch den Verbindungsbefehl angepasst, aber leider kommt der nächste Fehler:

"ERROR [08S01] [IBM][iSeries Access ODBC-Treiber]Fehler bei Datenübertragungsverbindung. comm rc=11001 - CWBCO1004 - Auflösung der fernen Adresse nicht möglich"


System.Data.Odbc.OdbcConnection con = new System.Data.Odbc.OdbcConnection("Driver={Client Access ODBC Driver (32-bit)};System=IBMDA400;UID=" + Properties.Settings.Default.strgAS400User + ";PWD=" + Properties.Settings.Default.strgAS400Passwort + ";Default Collection = "+Properties.Settings.Default.strgAS400Db +";");

Wenn ich mich z.B. mit Access via ODBC auf die DB einklinke, läuft alles super . . . jemand ne Idee?

Thema: ODBC/OleDB Verbindung mit einer AS400 aufbauen
Am im Forum: Datentechnologien

verwendetes Datenbanksystem: IBM As400

Ahoi, da meien Suche nichts gebracht hat, versuche es mal mit nem eigenen Ticket.

Ich versuche eine ODBC-Verbindung zu einer AS400 aufzubauen.

den ClientAccess ODBC-Treiber habe ich installiert & auch in der Benutzer-DSN eine Verbindung namens IBMDA400 eingerichtet.

Jetzt versuche ich die Verbindung aufzubauen bzw. die Daten einer Tabelle abzurufen und als Meldung erhalte ich immer:

"Der 'IBMDA400'-Provider ist nicht auf dem lokalen Computer registriert."

Hier mein QC:

System.Data.OleDb.OleDbConnection con = new System.Data.OleDb.OleDbConnection("Driver={Client Access ODBC Driver (32-bit)};Provider=IBMDA400;User ID=" + Properties.Settings.Default.strgAs400User + ";Password=" + Properties.Settings.Default.strgAs400Passwort + ";Default Collection = "+Properties.Settings.Default.strgAs400Db+";");

            System.Data.OleDb.OleDbDataAdapter daDatenAusDerAbfrage = new System.Data.OleDb.OleDbDataAdapter();

            DataTable dtDatenAusDerAbfrage = new DataTable();

            daDatenAusDerAbfrage.SelectCommand = new System.Data.OleDb.OleDbCommand("SELECT * FROM imp_kh", con);
            System.Data.OleDb.OleDbCommandBuilder cbDatenAusDerAbfrage = new System.Data.OleDb.OleDbCommandBuilder(daDatenAusDerAbfrage);
            daDatenAusDerAbfrage.Fill(dtDatenAusDerAbfrage); // hier tritt die Exception auf

Sehe ich den Wald vor lauter Bäumen nicht oder was mache ich falsch?

Schon Mal Danke für die Hilfe.

Thema: Spaltenreihenfolge in DataTable ändern
Am im Forum: Datentechnologien

Da war mein Eifer mal wieder schneller. Aber das klingt nach einer eleganten Lösung :)

Ich habe jetzt die CSV2DataTable-Funktion mal so erweitert, dass man ein Feld mit statischem Inhalt an einer beliebigen Stelle einfügen kann. So habe ich das Problem mit dem Index ändern nicht . . .

Thema: Spaltenreihenfolge in DataTable ändern
Am im Forum: Datentechnologien

verwendetes Datenbanksystem: SQL Server 2k

Ahoi zusammen :)

Ich möchte den Inhalt einer CSV-Datei in die DB schieben. Ich habe eine Klasse, die mir wahlweise die CSV_Datei direkt in die DB schreibt oder eine Datatable draus erstellt sowie eine, die mir die DataTable in die DB schiebt. Funzt auch alles super.

Jetzt ist es aber so, dass das Feld JobNummer nicht in der CSV-Datei steckt, sondern nur im Namen. Ergo ich würde aus der CSV-Datei ein DataTable machen & dann die fehlende Spalte hinzufügen. Da aber die DataTable2DB-Funktion den Inhalt Spalte für Spalte in die DB hämmert, spielt natürlich die Reihenfolge eine Rolle.

Im Notfall muss ich eben die Tabelle der DB anpassen. Das will ich aber vermeiden, da die JobNummer ein Teil des Prim-Schlüssel ist und diese Felder nach unserer Defintion immer am Anfang der Tabelle stehen.

Ergo, ich muss die Spaltenreihenfolge der DataTable anpassen. Nur wie? Oder kann ich über eine Schleife die einzelnen Spalten samt Inhalt aus der einen DataTable raus in eine neue kopieren? Bin für alle Ideen offen . . . .

Thema: Stored Procedure Update mit mehereren Werten wird scheinbar nicht ausgeführt
Am im Forum: Datentechnologien

Zitat von Florian Reischl
Zitat
So, habe mal von OleDB auf SqlClient umgestellt . . .. selbes Phänomen :(
Mal debugged? Breakpoint in "Ausführen" und schauen ob du da landest? Connection-String geprüft (richtige Datenbank?)?

Das ist immer das Erste was ich mache :( Ich benutze die selbe Klasse, um SP mit nur einem Int-Wert auszuführen & bei denen funktioniert es ohne Probleme. Daher gehe ich davon aus,dass es irgendwas mit den anderen Parametern zu tun hat :( Aber ich bin schon Step für Step durch & gepfüft, ob auch immer der richtige Wert & Co übergeben wird. Das stimmt alles . . . .

Thema: Stored Procedure Update mit mehereren Werten wird scheinbar nicht ausgeführt
Am im Forum: Datentechnologien

So, aheb mal von OleDB auf SqlClient umgestellt . . .. selbes Phänomen :(