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 reloop
Thema: Füllen einer List<> aus Datenbank nimmt viel Zeit in Anspruch
Am im Forum: Datentechnologien

Danke, FZelle.

Über local läuft es wirklich gravierend schneller. Werde wohl in den sauren Apfel beissen müssen und es darüber steuern.

Nochmals danke für deine Geduld.

Gruss,
reloop

Thema: Füllen einer List<> aus Datenbank nimmt viel Zeit in Anspruch
Am im Forum: Datentechnologien

Zitat von FZelle
@reloop :
Muss man dir eigentlich alles aus der Nase ziehen?

Nein, entschuldige, das war nicht meine Absicht.

Also:

_server.Get():

        public DbDataReader Get(string query)
        {
            try 
	        {	        
                MySqlDataReader resultSet;
                var CN = new MySqlConnection("CONNECTIONSTRING");
                var command = CN.CreateCommand();
   
                CN.Open();
                command.CommandText = query;
                resultSet = command.ExecuteReader();	
	            return resultSet;
	        }
	        catch (Exception e)
	        {
		
		        throw e;
	        }
        }

Der Server ist nicht local. Er liegt auf einem 1&1 Root Server.

Thema: Füllen einer List<> aus Datenbank nimmt viel Zeit in Anspruch
Am im Forum: Datentechnologien

Zitat von Wax
Ist auf der Tabelle die du befragst ein Index gesetzt?
MfG
wax

Ja, muss ich den während eines Statements oder vorher irgendwie setzen bzw. beachten?
Zitat von t2t
Wie lautet denn deine Query? Machst du ne komplizierte Abfrage auf verschiedene Tabellen mit Unterabfragen? So eine Query könnte unter Umständen länger dauern...

var result = _server.Get(String.Format(@"SELECT * FROM
                                                        tabelle WHERE col1 = '{0}' AND col2 = '{1}'",
                                                                                           value1,value2));

Thema: Füllen einer List<> aus Datenbank nimmt viel Zeit in Anspruch
Am im Forum: Datentechnologien

Danke, für die Hinweis.

Nach erneutem nachsehen erscheint mir das Problem des Zeitaufwandes bei der Select anweisung zuseien.

Hat jemand erfahrung mit MySQL und langsamen Zugriffen bzw. Antworten?

Thema: Füllen einer List<> aus Datenbank nimmt viel Zeit in Anspruch
Am im Forum: Datentechnologien

Greife auf eine MySQL Datenbank zu.. die mir in diesem Zuge fast als der Übeltäter erscheint.

Wenn ich selbige Prozeduren oben durch Textdateien füllen lasse, dauert es keine Sekunde.

Ist es bekannt das MySQL langsam(er) arbeitet?

Thema: Füllen einer List<> aus Datenbank nimmt viel Zeit in Anspruch
Am im Forum: Datentechnologien

Er benötigt für das Füllen der Liste, bei einer Tabelle die 5 Datensätze und 10 Spalten hat, ca. 3-4 Sekunden.

Irgendwas kann da doch nicht stimmen?

Thema: Füllen einer List<> aus Datenbank nimmt viel Zeit in Anspruch
Am im Forum: Datentechnologien

Hallo liebe Community,

ich mach es kurz und knackig:

Ich habe eine klasse "myClass".

Diese hat insgesamt 15 Eigenschaft. ( 3 Davon sind List<..class..> - falls das eine Rolle spielt?)

Nun, wenn ich nun im Code schreibe:

var newItem = new myClass();

dauert dieser Vorgang schon ca. 1 Sekunde. Es läuft zumindest im Debug nicht fließend weiter, sondern "hängt" kurz. Meiner interpretation nach zu lange. (Wenn ich das ganze mal auf 500 Summieren würde)

Nun gehe ich folgenden Weg:

Über einen DbDataReader lese ich mir die Daten aus einer Tabelle und laufe diese in einer while(myDbReader.read()) durch.

In dieser Whileschleife mache ich dann folgendes:

myList<myClass>.Add(new myClass {
   properties = myDbReader['wert'].ToString(),
   properties1 = myDbReader['wert'].ToString(),
   properties2 = myDbReader['wert'].ToString(),
} usw.

Das ganze nimmt erheblich viel Zeit in anspruch. Woran kann das liegen? Ist mein Weg falsch gewählt? Gibt es evtl. eine elegantere Lösung?

Falls die Infos noch zu schwammig sind, oder Informationen fehlen, einfach mitteilen.

Vielen Dank,
reloop

Thema: Genaue Fehlermeldung statt "Anwendung reagiert nicht"
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hallo Community,

erstmal entschuldige ich mich für das schlecht beschriebene Thema, doch leider viel mir keine treffendere Beschreibung ein. Und zwar geht es um folgendes:

Gibt es eine Möglichkeit, wie ich z.B. Fehler ausgeben kann, wenn eine Assembly nicht vorhanden ist? Momentan ist es so, dass ich die .EXE - Starte und von Windows mitgeteilt bekomme das ein Fehler aufgetreten ist und meine Anwendung nicht mehr reagiert.


Was ich quasi suche, ist quasi ein weg wie bei try - catch, der mir beim App.Do() ne Exception wirft, wenn etwas schief gelaufen ist.

In der Entwicklungsumgebung bekomme ich die Meldung, waurm es nicht funktioniert hat, natürlich immer im Debugger angezeigt, doch beim Kunden erscheint leider immer nur direkt die Meldung "Anwendung reagiert nicht mehr".

Ich hoffe, ihr versteht, worum es mir geht.

Vielen Dank,
reloop

Thema: VS2010 Projekt: Dateien automatisiert hinzufügen
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Zitat von Lars Schmitt
Des weiteren könntest Du die Dateien, auch mithilfe eines kleine selbst geschriebenen Programm der Solution selbst hinzufügen. (Die SLN Datei ist eine XML Datei die man auch von extern manipulieren könnte.

Danke, genau diese Aussage habe ich gesucht! :)

Thema: VS2010 Projekt: Dateien automatisiert hinzufügen
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Hallo liebe Community,

besteht die Möglichkeit, einem Projekt "extern" Dateien hinzuzufügen?

Ich habe viele Klassen, die ich generieren lasse und möchte ungern nochmal jede einzelne dem Projekt zuweisen.

Gibt es dort einen eleganteren Weg? Das ich quasi dem Projekt programmgesteuert mitteile, welche Dateien noch hinzufügt werden müssen?

Ich hoffe ihr versteht, worum es mir geht.

Gruss,
reloop

Thema: ASP.NET Page_Load wird immer wieder durchlaufen (Timerproblem?)[GELÖST]
Am im Forum: Web-Technologien

Zitat von Nitro2k7
Hallo reloop,

Stichwort

if(!IsPostBack) { ... }
?

Gruß

nitro

Danke, Nitro2k7. Mit diesem Lösungsansatz bin ich bestens bedient!

Hier für alle noch der Link zur Definition von IsPostBack

Thema: ASP.NET Page_Load wird immer wieder durchlaufen (Timerproblem?)[GELÖST]
Am im Forum: Web-Technologien

Hallo liebe Community,

ich möchte in meiner Anwendung mit den Handle des aktuellen Windows ermitteln, das klappt soweit sehr gut.

Um zwischenzuspeichern, welchen Handle meine ASP Anwendung hat (bzw. wohl eher der ausführende Browser) speicher ich mir im Load den aktuellen Handle.

Nun habe ich einen Timer auf meiner Seite welcher nach einem gewissen Interval prüft, welchen Handle das gerade geöffnete Fenster hat.

Mein Problem ist es, dass ich, seit dem ich den Timer eingebaut habe, JEDES mal einen Refresh der Seite erlebe, nachdem der Tick ausgeführt wird / wurde.

Wie konfiguriere ich den Timer so, dass er zwar den TICK ausführt, jedoch keinen Refresh der Seite erzeugt?

Beste Grüße,
reloop

Thema: Welcher Profiler ist auf diesem Screenshot zu sehen? Ist der empfehlenswert? [==>Jetbrains dotTRACE]
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Vielen Dank!

/Edit:

Eine Frage noch, welche Art von Überwachung muss ich ausführen, um zu dieser Detailierten Threadübersicht zu kommen?

Thema: Welcher Profiler ist auf diesem Screenshot zu sehen? Ist der empfehlenswert? [==>Jetbrains dotTRACE]
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Hallo Community,

ich bin eben im Netz auf ein Bild gestoßen, welchen einem die Dauer für die einzelnen Funktionen wiedergibt. (Siehe Anhang)

Meines Wissens nach, funktioniert das mithilfe eines Profilers?

Meine Frage ist nun, ob jemand den unten gezeigten Profiler kennt oder mir einen empfehlen kann, der gleiches leistet.

Beim laden meines Programmes dauert es nämlich gelegentlich ungewöhnlich lang und ich würde gerne herausfinden woran das liegt.

Gruss,
reloop

Thema: List/Collection: Jedes Element der <Klasse> durchsuchen
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Ich dachte es geht über eine schnellere Möglichkeit (LINQ?) anstatt in einer Schleife jedes Objekt samt Properties durchzugehen.

Und talla:
Ich habe ein Grid, in dem eine beliebige Anzahl an Spalten ausgegeben werden. Nun möchte ich dem Benutzer oben eine Textbox zur Verfügung stellen, in die er einen Wert eingeben kann und daraufhin jede Spalte nach diesem durchsucht wird.

Wie löst ihr dieses Problem?

Gruss,
reloop

Thema: List/Collection: Jedes Element der <Klasse> durchsuchen
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hallo Community,

gibt es einen einfachen und effizienten Weg eine ObservableCollection<meineKlasse> so zu durchsuchen, dass z.b. der Wert "xyz" in jeder Property von <meineKlasse> gesucht wird?

Bedeutet:

angenommen:

public class meineKlasse
{
   public string name {get;set;}
   public string email {get;set;}
   public int alter {get;set;}
   public datetime anmeldedatum {get;set;}
}

Meine Absicht ist es jetzt möglichst einfach jede Property (Name, Email, etc..) nach einem Wert zu durchsuchen..

Danke für eure Hilfe,

Gruss,
reloop

Thema: Vererbte Klassen zu Interface vereinigen
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Wenn deine Klasse das Interface IInterface zugewiesen hat, welches wiefolgt aufgebaut wäre:

public interface IInterface
{
   void myMethod();
}
Dann müsstest du zwingend in der Klasse diese Funktion auch anlegen, mittels:

public void myMethod()
{

}

Und somit ist sie auch im

private List<myClass> _liste = new List<myClass>();
_liste.ElementAt(0)).myMethod();

vorhanden. Ausschlagebender Punkt ist, dass die Methode public ist.

Gruss,
reloop


Zusammengefasst:

    public class myClass : UserControl , IInterface
    {
        public void myMethod()
        {

        }
    }

    public interface IInterface
    {
        void myMethod();
    }

    public class myTestClass
    {
        private List<myClass> _liste= new List<myClass>();

        public myTestClass()
        {
            _liste.ElementAt(0).myMethod();
        }
    }

Thema: [UserControls] Geschwindigkeitsdefizit³ ?
Am im Forum: GUI: WPF und XAML

Hallo talla, fande den Beitrag sehr interessant. Könntest du einen Verweis oder Artikel nennen, wo die richtige Verwendung von Controls (Bsp. Grid nicht als Layoutbasis) o.ä. ausführlicher beschrieben ist?

Danke für die Mühe und pardon für das OT.

Beste grüße,
reloop

Thema: MVVM - RelayCommand
Am im Forum: Rund um die Programmierung

Zitat von winSharp93
Google mal nach (in beliebigen Zusammenstellungen Augenzwinkern ): "WPF Command Attached Behavior". Da gibt's einige nette Varianten.

Einen ganz interessanten Eindruck machen auch die Actions in Caliburn. Wobei mir da auch ein paar Punkte nicht ganz so gut gefallen.

Danke für deinen Rat, ich denke da werde ich fündig werden.

Wenn du schreibst, dass dir da ein paar Punkte nicht ganz so gut gefallen, darf ich Fragen, wie du es z.B. löst wenn du bei einem Button das GotFocus event noch belegen möchtest?

Die Command-Property kümmert sich ja scheinbar um das Click-Ereignis.

Gruss,
reloop

Thema: MVVM - RelayCommand
Am im Forum: Rund um die Programmierung

Danke gfoidl,

eine Frage zum Schluss hätte ich noch:

Worin unterscheide ich denn die Events? Bei einem Click definiere ich ja fest dass es beim "Click" feuern soll, doch beim Command kann ich ja nur ein Event hinterlegen?

Was wäre denn z.B. wenn ich jetzt eine anderes Event noch belegen wollen würde?

Danke für eure Hilfe,

gruss,

reloop

Thema: MVVM - RelayCommand
Am im Forum: Rund um die Programmierung

Danke für deine Antwort, das kommt mir schonmal sehr Entgegen.

Die Frage, die sich mir gestellt hat, war ob es irgendwelche Vorteile durch den Einsatz von RelayCommand geben wird. (Perfomance, Übersichtlichkeit, einfachere Codeverwaltung? etc.)

Oder ob es im Prinzip irrelevant ist, welchen Weg ich da gehe.

Gruss und danke für deine Hilfe,
reloop


EDIT:

Nachtrag: Und noch eine Frage zum Schluss - Wie löst ihr das in euren Anwendungen?

Thema: MVVM - RelayCommand
Am im Forum: Rund um die Programmierung

Hallo,

ich habe mein MVVM wiefolgt aufgebaut:

0- Backend
1- Contract
2- Implementation
3- ViewModels
4- Anwendung(User-Controls die Zugriff auf das jeweilige VM besitzen).

Derzeit verwende ich keine RelayCommand um zwischen Anwendung und ViewModel zu kommunizieren, sondern schreibe z.B. in einem:

<Button Click="ClickEvent"/> anstatt <Button Command="{Binding ClickEvent}"/>

Nun wurde ich auf das Verfahren mit den RelayCommand-Aufmerksam gemacht und überdenke gerade ob meine "FrameWork"-Logik noch bestand hat, nach meiner "alten"(?) vorgehensweise.

Wie handhabt ihr das? Wäre dass Grund genug das System nochmal zu überdenken?

Danke für euren Rat,
gruss,
reloop

Thema: Klassen instanziieren = alle Properties sind Null
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Danke für eure Antworten.

Mir wurde damals während eines Lerhgangs mitgeteilt, dass das kleinschreiben des Schlüsselwortes die automatische initialisierung mit sich bringt.

Gut, dass ihr mich darauf hingewiesen habt.

Nach eigener Recherche bin ich, wie Stipo bereits angeführt hat, ebenfalls darauf gestoßen dass string lediglich einen Alias auf String abbildet.

Vielen Dank für eure Hilfe,

gruss,

reloop

Thema: Klassen instanziieren = alle Properties sind Null
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hallo,

kurz und knapp:

Ich habe eine Klasse "FooBar". Diese bestizt 2 Properties vom Typ "string". (Wichtig, 'string' ist klein geschrieben und wird meines Wissens deshalb auch automatisiert beim instanzieren mit dem Standard string-wert belegt (String.Empty).

Wenn ich nun schreibe:

var myClass = new FooBar();

sind die beiden Properties in myClass aber mit "null" belegt und nicht mehr mit "".

Ich weiß nicht was ich geändert habe um diesen Zustand herbei zu führen, jedoch ist es mehr als störend und ich kriege es nicht mehr weg. Ich könnte jetzt im Konstruktor der Klasse die Werte manuell auf String.Empty setzen, aber das wäre ja nicht Sinn der Sache.

Vielleicht habt ihr ja einen Tipp?

Gruss,
reloop

Thema: DataGrid: Direktes bearbeiten der "Cell"
Am im Forum: GUI: WPF und XAML

Hallo,

habe eine, in meinen Augen noch nicht ganz so glückliche, Lösung gefunden:

Im Event: CurrentCellChanged:

 private void GridCurrentCellChanged(object sender, EventArgs e)
        {
            var currentGrid = sender as DataGrid;


            if (currentGrid != null)
            {
                if (currentGrid.CurrentCell.Column == null) return;

                currentGrid.CommitEdit();
                if (currentGrid.CurrentCell.Column.Header.ToString() == "")
                {
                    currentGrid.CancelEdit();
                    return;
                }

                currentGrid.BeginEdit();
            }

            var focusedCell = Keyboard.FocusedElement as DataGridCell;
            if (focusedCell == null) return;

            var traversal = new TraversalRequest(FocusNavigationDirection.Next);
            focusedCell.MoveFocus(traversal);
        }

Somit landet man direkt im Bearbeiten.

Thema: DataGrid: Direktes bearbeiten der "Cell"
Am im Forum: GUI: WPF und XAML

Hallo,

ich habe eine Anwendung wo der Kunde über ein WPF-DataGrid zu einem bestimmten Vorgang beliebig viele Mitarbeiter hinzufügen kann.

Dazu habe ich ein eigenes ComboBox-Control entworfen, welches im DataGrid eingebunden ist. (DataGridTemplateColumn->CellTemplate->DataTemplate).

Da bei jedem Vorgang unterschiedlich viele Mitarbeiter hinzugefügt werden können, habe ich die Eigenschaft CanUserAddRows auf "True" gesetzt.

Nun habe ich aber folgendes Problem:

Wenn der Kunde nun in dieser, ich nenne sie mal "autogenerierten"-Row, den Inhalt der Combobox verändert und dann in die nächste Spalte vom Grid klickt, wird der vorherige Wert in der Combobox verworfen.

Laienhaft Ausgedrückt: Ich habe das Gefühl, dass das DataGrid die Zeile erst beim Doppelklick initialisiert und für Eingaben "bereit" macht. Denn wenn ich erst in eine Spalte Doppelklcike (von der "autogenerierten"-Row) und dann in die Combobox wechsle und einen Wert auswähle, funktioniert alles wunderbar.

Ich hoffe, ihr könnt nachvollziehen worum es geht und meine Beschreibung war nicht all zu verwirrend.

Mit freundlichen Grüßen,
reloop

Thema: Einfrieren des GUIs verhindern: Thread oder Backgroundworker für asynchrone Vorgänge?
Am im Forum: GUI: Windows-Forms

Danke, habe es jetzt so umgesetzt wie o.g. und es ist genau das wonach ich gesucht habe.

Letzte Frage:

" ThreadPool.QueueUserWorkItem(_ =>" wofür steht in dem Fall das "_" ?

Bei MouseOver zeigt er mir an: "parameter (object) _" .. kann ich in dem Zusammenhang aber leider nicht wirklich in Verbindung bringen.

Thema: Einfrieren des GUIs verhindern: Thread oder Backgroundworker für asynchrone Vorgänge?
Am im Forum: GUI: Windows-Forms

Umgebaut auf meine Anwendung sieht es jetzt so aus:

             ThreadPool.QueueUserWorkItem(_ =>
            {
                var searchResult = ReturnSearchResult(_search);

                Action<List<myData>> cheapUIAccess = r => ItemsSource = r;

                Dispatcher.BeginInvoke(cheapUIAccess, searchResult);
            });  


Verstehe ich den Ablauf richtig? der QueueUserWorkItem hängt die ihm über Lambda zugewiesene Methode dem Pool an abzuarbeitenden Methoden an?

Und wird mit Action<List<myData>> cheapUIAcess eine Methode erstellt, mit dem Parameter "r", der in der Methode selbst den ItemsSource mit seinem wert belegt?

Und zum Schluss wird mithilfe des BeginInvoke diese Funktion aufgerufen (cheapUiAcess) und der Parameter "searchResult" stellt indem Fall mein "r" da?

Verzeih mir diese Laienhaften Fragen, aber das hilft es mir besser zu verstehen.

Und eine Frage zum Schluss: Wo ist der Vorteil des QueueUserWorkItem gegenüber einem eigenen Thread? Oder wird er dadurch erzeugt?

Danke für deine Hilfe,
deine Beiträge sind mir jedes eine riesen Hilfe.

Gruss,
reloop

PS: Funktionieren tut es spitze!

Thema: Einfrieren des GUIs verhindern: Thread oder Backgroundworker für asynchrone Vorgänge?
Am im Forum: GUI: Windows-Forms

Danke gfoidl.

Also kurzgefasst ist mein Vorgang dieser:

ComboboxOpen
---Thread der die Funktion "ManageMySearch" Aufruft
-----"ManageMySearch" beinhaltet die Filterung der Liste + einen AsyncCallBack mit der aktualisierung der Gui?

Gruss und vielen Dank,
reloop

Thema: Einfrieren des GUIs verhindern: Thread oder Backgroundworker für asynchrone Vorgänge?
Am im Forum: GUI: Windows-Forms

Hallo liebe Community,

ich habe eine Frage zum Umgang der beiden o.g. Objekte. Ich möchte in einer Combobox suchen, welche an eine List<> gebunden ist. Da die Anwendung immer kurz hängt, wenn sich das DropDown mit den neuen Daten öffnet, möchte ich dieesen Vorgang gerne auslagern.

Nun meine Frage:

Nutze ich dafür einen Thread im ComboBox-DropdownOpen Event?

Und wie löse ich das Problem, wenn ich NACH beenden des Threads noch Code ausführen will? Quasi einen "ExitCode" oder "DoAfterWorkCode".

Oder ist mein Ansatz komplett Falsch und ich sollte auf einen Backgroundworker zurückgreifen?

Gruss,
reloop