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 Lord Hessia
Thema: DataBinding aller Tabellenzeilen ohne DataGridView
Am im Forum: Datentechnologien

Hallo,

hat noch niemand versucht, Databinding auf diese Weise zu verwenden?
Da ich bereits die nächste Maske in meinem Programm habe, die ebenfalls mehrere Datensätze einer Tabelle darstellen soll, ohne eine DataGridView zu verwenden, scheint mir das doch ein häufigeres Problem zu sein.

Thema: DataBinding aller Tabellenzeilen ohne DataGridView
Am im Forum: Datentechnologien

Hallo,

ich würde gerne die Inhalte einer Tabelle (jeder Eintrag besteht aus einem Text und einem booleschen Wert), an eine View binden. Es sollen - wie bei einem DataGridView - alle Einträge auf der Seite dargestellt werden. Allerdings würde ich gerne einfach nur CheckBoxen in mehreren Spalten nebeneinander darstellen. anstatt ein DataGridView-Control zu verwenden. Das ganze soll ungefähr so aussehen:
Text1 [] Text2 [] Text3 []
Text4 [] Text5 [] Text6 []
Text7 [] Text8 []

Das dynamische Erzeugen der CheckBoxen ist ja kein Problem. Problematisch ist aber, dass ich immer nur einen Datensatz an die View binden kann. Aktuell steht z.B. in allen CheckBoxen Text1 und sie sind entweder alle selektiert oder nicht.
Gibt es eine Möglichkeit, jeweils eine Tabellenzeile an eine CheckBox zu binden?

Thema: Kompliziertes SQL SELECT-Statement
Am im Forum: Datentechnologien

So weit, dass ein Fehler in einem der .NET-DB-Zugriffs-Klassen auftreten könnte, bin ich noch gar nicht. Der Fehler stammt direkt von der Datenbank. Er wird auch ausgegeben, wenn ich das Statement direkt auf der Datenbank-Konsole ausführe.

Thema: Kompliziertes SQL SELECT-Statement
Am im Forum: Datentechnologien

Hallo zusammen,

ich habe mich in letzter Zeit mit anderen Projekten beschäftigt, und dieses Problem hinten angestellt. Mittlerweile ist es aber wieder akut. Deshalb wollte ich noch einmal nachfragen, ob jemand eine Lösung des Problems für SQLite weiß oder zumindest eine Idee hat, warum SQLite die Lösung von Andre nicht annimmt.

Gruß Flo

Thema: C++/Java
Am im Forum: Rund um die Programmierung

Zitat
Original von herbivore
Es lohnt nicht, das auf Verdacht oder gut Glück zu tun.

Da kann ich zustimmen. C/C++ zu lernen würde dann Sinn machen, wenn Du laufzeitkritische Dinge programmieren willst. Oder Programme für Systeme schreibst, die wenig Resourcen zur Verfügung haben.
Java unterscheidet sich von C# hauptsächlich darin, dass hinter C# ein viel größeres Framework steckt, während man bei Java viele Fremdbibliotheken benötigt. Erst wenn Du in den Bereich Webentwicklung gehst, gibt es große Unterschiede aufgrund der Vielzahl an Frameworks für die Webentwicklung mit Java.

Ach ja, Java-GUIs sind mittlerweile nicht mehr zwangsläufig hässlich, wie regen gemeint hat.

Thema: HttpListener wirft Exception
Am im Forum: Web-Technologien

Hallo, ich bin seit langer Zeit auch mal wieder hier.

Ich setze in meinem Programm einen HttpListener ein, der eine Konfigurationswebseite anzeigt. Man kann auf der Webseite einige Dinge ändern und nach erfolgreicher Änderung der Konfiguration zeigt eine Webseite den Erfolg an.
In unregelmäßigen Abständen (manchmal bereits beim ersten Aufruf der Konfig-Webseite, manchmal erst beim fünften) wird eine HttpListenerException geworfen.
Könnt ihr nachvollziehen, woran das liegt?

Der Code sieht folgendermaßen aus:

/// <summary>
/// Startet einen lokalen, programminternen Webserver, der an den uebergebenen URLs lauscht.
/// </summary>
/// <param name="urls">URLs, die ueberwacht werden sollen. Es werden die uebergebenen URLs
/// und alle untergeordneten URLs beobachtet</param>
private static void listenAt(string[] urls) {
  if (!HttpListener.IsSupported) {
    log.Warn("Die bequeme Konfiguration ueber den Webbrowser " +
          "funktioniert nur unter Windows XP SP2 or Server 2003.");
    return;
  }
  
  if (urls == null || urls.Length == 0) {
    log.Warn("Es wurde keine Konfigurations-Webseite registriert. " +
                "Sie koennen das Programm somit nur ueber direktes " +
                "Bearbeiten der config.xml-Datei konfigurieren.");
    return;
  }
            
  // Existiert bereits ein Listener? Dann diesen zunächst killen
  if (httpListener != null) {
    httpListener.Stop();
  }
  
  // Neuen Listener erzeugen und alle URL-Prefixes hinzufuegen
  httpListener = new HttpListener();
  foreach (string url in urls) {
    httpListener.Prefixes.Add(url);
    log.Info("Der HTTP-Listener wird gestartet und wartet auf Anforderungen " +
               "der Konfigurations-Webseite unter " + url + "config");
  }
  
  try {
    httpListener.Start();
    while (true) {
      // Note: The GetContext method blocks while waiting for a request.
      HttpListenerContext context = httpListener.GetContext();
      HttpListenerRequest request = context.Request;
      
      if (request.Url.AbsoluteUri.Contains("close")) {
        // Die URI enthaelt "close", wenn die Konfiguration bearbeitet wurde
        bool configChanged = false;
        
        // Lesen der eingegebenen Daten
        Stream body = request.InputStream;
        StreamReader reader = new StreamReader(body, Encoding.UTF8);
        
        String newConfig = reader.ReadToEnd();  // HIER TRITT DER FEHLER AUF
        configChanged = appSettings.updateConfig(newConfig);
	
        // Bestaetigung anzeigen, ob Konfiguration geaendert wurde
        HttpListenerResponse response = context.Response;
        // Construct a response.
        string responseString = appSettings.createConfigChangeResultPage(configChanged);
        byte[] buffer = System.Text.Encoding.UTF8.GetBytes(responseString);
        // Get a response stream and write the response to it.
        response.ContentLength64 = buffer.Length;
        System.IO.Stream output = response.OutputStream;
        output.Write(buffer,0,buffer.Length);
        output.Flush();
        output.Close();
        response.Close();
        
        body.Close();
        reader.Close();
        
        // TODO: Wie kann man hier den Request schließen? In der MSDN steht:
        // If you are finished with the request, it should be closed also.
      }
      else if (request.Url.AbsoluteUri.Contains("config")) {
        // Die URI enthaelt "config", wenn die Konfigurationswebseite angezeigt werden soll
        HttpListenerResponse response = context.Response;
        // Construct a response.
        string responseString = appSettings.createConfigPage();
        byte[] buffer = System.Text.Encoding.UTF8.GetBytes(responseString);
        // Get a response stream and write the response to it.
        response.ContentLength64 = buffer.Length;
        System.IO.Stream output = response.OutputStream;
        output.Write(buffer,0,buffer.Length);
        output.Flush();
        output.Close();
      }
    }
  }
  catch (Exception ex) {
    log.Error(ex.ToString());
  }
  finally {
    httpListener.Stop();
  }
}

Folgende Exception wird an der Stelle "HIER TRITT DER FEHLER AUF" gefeuert:
System.Net.HttpListenerException: Es wurde versucht, auf eine nicht vorhandene N
etzwerkverbindung zuzugreifen
at System.Net.HttpRequestStream.Read(Byte[] buffer, Int32 offset, Int32 size)

at System.IO.StreamReader.ReadBuffer()
at System.IO.StreamReader.ReadToEnd()
at StockQuoteFilter.App.listenAt(String[] urls) in c:\Dokumente und Einstellu
ngen\Admin\Eigene Dateien\SharpDevelop Projects\StockQuoteFilter\App.cs:line 397

Thema: SQL: Datensetze auslesen
Am im Forum: Datentechnologien

Einfach ein "GROUP BY ItemNo" an das SQL-Statement dranhängen

Thema: SQLServer05-Befehl zu MySQL -kompatibel??
Am im Forum: Datentechnologien

Hast Du das Problem mittlerweile gelöst?
Ich sehe die Stelle in Deinem Statement nicht, wo der Parameter eingefügt wird und die Geschichte mit dem Value kapiere ich auch nicht.

Du meinst wohl eher so etwas:

OdbcDataAdapter odbcadapter = new OdbcDataAdapter("select * from news where startdate between @p1 and now() and enddate ≥ now()", connection);
odbcadapter.SelectCommand.Parameters.Add("@p1", startDate);

Thema: SQLServer05-Befehl zu MySQL -kompatibel??
Am im Forum: Datentechnologien

Wenn Deine Frage also lautet, wie man einen Datenbankzugriff schreibt, der austauschbar ist, dann kann ich Dir diesen Artikel empfehlen: http://www.microsoft.com/germany/msdn/library/net/adonet/SchreibenEinerPortierbarenDatenzugriffsschicht.mspx?mfr=true

Thema: [gelöst] Substring des aktuellen Feldwertes in Feld eintragen
Am im Forum: Datentechnologien

Hallo Joerg,

Dein Beitrag hat mir trotzdem sehr geholfen, da man das substr() von SQLite genauso verwenden kann, wie ich festgestellt habe. Damit klappt's:

UPDATE ingredient_juice SET color = substr(color, 3, 6);

Gruß Flo

Thema: [gelöst] Substring des aktuellen Feldwertes in Feld eintragen
Am im Forum: Datentechnologien

Wie ist es in SQL möglich, den Wert eines Feldes mit einem Substring dieses Wertes zu ersetzen.
In meiner Datenbank stehen zur Zeit für Farbangaben Werte wie 0x123456 oder 0xFFFFFF in der Spalte Color. Ich würde daraus gerne 12345 und FFFFFF machen.

Folgender Versuch hat nicht funktioniert:


create table temp(id integer, newcolor varchar(6), color varchar(8));
INSERT INTO temp SELECT id, substr(color, 3, 6) AS newcolor, color FROM ingredient_juice;
UPDATE ingredient_juice SET color = (SELECT newcolor FROM temp WHERE ingredient_juice.id = temp.id);

Ich nehme mal an, dass die WHERE-Klausel des Updates das Problem ist, weiß aber keinen besseren Weg.

Habt Ihr bessere Ideen - evtl. auch ohne temporäre Tabelle?

Ach ja, ich verwende SQLite - es steht also kein TSQL oder so zur Verfügung.

Thema: [SQL] Komme mit Joins nicht weiter...
Am im Forum: Datentechnologien

LEFT JOIN müsste eingetlich das sein, was Du willst.

Thema: ToolStripComboBox und DataBinding
Am im Forum: GUI: Windows-Forms

Ok, ich habe mittlerweile den Grund für das falsche Verhalten gefunden.
Es handelt sich bei dem beschriebenen Verhalten offenbar um einen Bug. Sobald eine ComboBox irgendwo anders als in der höchsten Menüebene hinzugefügt wird, so zeigt sie keine Daten an, die per DataSource an das Control gebunden wurden.

Die einzige Möglichkeit, das ganze zu umgehen, ist es, die Daten "per Hand" in die ComboBox einzutragen.

s. auch http://www.vbdotnetforums.com/showthread.php?p=38024

Thema: ToolStripComboBox und DataBinding
Am im Forum: GUI: Windows-Forms

Ich würde gerne nochmal nachhaken. Die beschriebene Vorgehensweise funktioniert bei mir nicht. Trotz der Zeile


toolStripComboBox.ComboBox.DataSource = new string[] {"abc", "def", "ght"};
bleibt die ComboBox im Menu leer. Woran kann das liegen?

Thema: ToolStripComboBox und DataBinding
Am im Forum: GUI: Windows-Forms

Da hast Du Recht. Das passiert dann, wenn man versucht, für das Beispiel einfachere Variablennamen zu erzeugen. Habe es geändert.

Aber nun sind unsere Beispiele gleich und wie gesagt, bei mir geht das so nicht (die ComboBox bleibt leer). Bist Du sicher, dass es funktionieren müsste?

Thema: ToolStripComboBox und DataBinding
Am im Forum: GUI: Windows-Forms

Ich möchte an eine ToolStripComboBox eine DataTable binden.
Die ToolStripComboBox selber hat ja keine DataSource-Eigenschaft, sie besitzt jedoch eine ComboBox-Eigenschaft, die wiederum DataSource besitzt.

Leider bleibt die ComboBox aber bei folgendem Code leer:


DataTable dt = IngredientDal.getAllIngredientsAsDataTable(IngredientType.Juice);
// dt enthält Einträge: Console.WriteLine(dt.Rows.Count) gibt 90 aus
this.toolStripComboBox.ComboBox.DataSource = dt;

// Ingredientname und ID kommen in der DataTable vor
this.toolStripComboBox.ComboBox.DisplayMember = "Ingredientname";
this.toolStripComboBox.ComboBox.ValueMember = "ID";

Hat jemand von Euch schonmal eine DataTable an eine ToolStripComboBox gebunden und kann mir sagen, wie das geht?

Thema: Eine Klasse definieren und aufrufen...
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Das würde nur bei einer statischen Klasse funktionieren.
Bei nicht statischen Klassen musst Du zunächst ein Objekt anlegen und auf diesem die Methode aufrufen.
Class1 objektVonClass1 = new Class1();
objektVonClass1.MyVoid();

=> s. z.B. auch Kapitel 6 in diesem Buch: http://www.galileocomputing.de/openbook/csharp/

Thema: Kompliziertes SQL SELECT-Statement
Am im Forum: Datentechnologien

Hallo Andre,

vielen Dank, der Ausdruck sieht ja schonmal ziemlich beeindruckend aus und ich habe ihn wohl mittlerweile auch verstanden. Allerdings bekomme ich den Fehler:
no such column: d.Ingredient_ID (es ist kein Schreibfehler, bei mir heißt die Spalte Ingredient_ID mit "_")

Dabei enthält die Tabelle, auf die die Bedingung angewendet wird, sehr wohl eine solche Spalte. Evtl. liegts daran, dass SQLite Probleme mit zu vielen JOINs hat. Weiß da jemand etwas drüber?

Dass es mehrere Zutaten mit der gleichen Menge geben kann ist mir klar, allerdings ist es mir dort egal, welche ausgewählt wird. Da müsste ein einfaches GROUP BY Cocktailname reichen.

Thema: Kompliziertes SQL SELECT-Statement
Am im Forum: Datentechnologien

Ich kämpfe gerade mit einem SQL-Ausdruck. Wer eilt mir zur Hilfe?

Es gibt drei Tabellen:
Cocktail (ID, Cocktailname)
Insertion_Juice (Cocktail_ID, Ingredient_ID, Quantity)
Ingredient_Juice (ID, Ingredientname)

In Insertion_Juice stehen also zwei Fremdschlüssel. Cocktail_ID verweist auf Cocktail.ID und Ingredient_ID auf Ingredient_Juice.ID


Folgendes soll selektiert werden:
Planter's Punch | 6 cl Ananassaft
Kiba | 10 cl Kirschsaft
Mein Cocktail | 28 cl Karottensaft
usw.

Ich hätte also gerne den Cocktailnamen aus Cocktail, die Menge aus Insertion_Juice und den Namen der Zutat aus Ingredient_Juice - so weit kein Problem, allerdings gibt es auch Cocktails, die keinen Saft enthalten, deren ID also in Insertion_Juice gar nicht auftaucht. Diese sollen allerdings auch angezeigt werden (Problem I). Außerdem soll - als Schmankerl so zu sagen - nur immer ein Saft pro Cocktail angezeigt werden und zwar der mit dem höchsten Wert bei Quantity (Problem II).

Das Programm, dass u.a. diese SQL-Abfrage enthält, gabs schonmal als WinApi-Version und da hatte ich mit vielen temporären Datenbank-Tabellen gearbeitet, aber das würde ich dieses Mal gerne umgehen.

Mein Statement sieht bislang so aus - die beiden Probleme werden dadurch aber nicht gelöst.

 SELECT Cocktailname, insertion_juice.Quantity, ingredient_juice.Ingredientname
FROM cocktail LEFT JOIN insertion_juice ON cocktail.ID = insertion_juice.Cocktail_ID
JOIN ingredient_juice ON ingredient_juice.ID = insertion_juice.Ingredient_ID

Thema: Eine Klasse definieren und aufrufen...
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Mh, also das ist eine ziemlich grundlegende Frage für alle OO-Sprachen. Ich nehme also an, dass Deine bisherigen Programmiererfahrungen keine Objektorientierung umfassen. Deshalb solltest Du Dir schon ein buch zum thema gönnen.

Als Einstieg wird hier meistens folgendes Buch empfohlen: http://www.galileocomputing.de/openbook/visual_csharp/index.htm (weil fast alles drin und kostenlos)

Zu Deiner Frage: Ohne den näheren Verwendungszweck zu kennen, würden mir folgende Möglichkeiten einfallen:
- Die Klasse (geht erst ab .NET 2.0) oder zumindest ihre Methoden und Properties (geht auch schon vor .NET 2.0) statisch machen, dann kannst Du von überall auf ihre Methoden und Properties zugreifen, wenn Du ihren Namespace inkludiert hast
- Ein Objekt von Class1 in Form1 erzeugen und dieses verwenden
- Eine zentrale Klasse erzeugt sowohl ein Objekt von Class1 als auch alle Formulare und übergibt diesen das Class1-Objekt

Thema: Headerzeile(n) auch unten
Am im Forum: Wünsche und Kritik

Kannst Du nicht einfach mehrere Tabs öffnen?

Thema: External exception auslesen
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hast Du es schonmal mit exception.GetBaseException().Message versucht?

Thema: "Neue Beiträge"-Link verschwunden
Am im Forum: Wünsche und Kritik

Ja, sehr gut!

Thema: "Neue Beiträge"-Link verschwunden
Am im Forum: Wünsche und Kritik

Da waren wohl die falschen Nutzer online :-)
Ich fand den Link auch immer sehr praktisch (eigentlich mein einziger Einstiegspunkt neben der Suchfunktion). Warum ist der denn verschwunden? Und hilft es, wenn wir ganz lieb darum bitten, dass er zurück kommt?

Thema: Wo finde ich die resgen.exe ?
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Ich wollte mein Programm aus Lerngründen mehrsprachig machen. In meinem C#-Buch steht, dass man zunächst ne txt-Datei mit allen Strings erzeugen und dann durch den Resource File Generator "resgen" in eine resX-Datei daraus generieren soll. Leider bekomme ich bei einem Aufruf über die Kommandozeile die Fehlermeldung, dass resgen nicht vorhanden sei. Resgen scheint auch auf der gesamten Platte nicht vorhanden zu sein - wo sollte sich diese Datei im Normalfall denn befinden?

Thema: dynamisches Array von der Klassen String
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hallo JAck30lena,

also ne ArrayList halte ich nicht für besonders optimal. Wenn man mit C# anfängt und man von der Generics-Syntax verwirrt wird, dann hat sie evtl. eine Berechtigung. Sonst bin ich der Meinung, dass man (unter .NET2.0) möglichst selten die gute alte ArrayList benutzen sollte.
Eine generische Liste hat zum einen der Vorteil, dass sie typsicher ist (d.h. der Compiler meckert, wenn Du etwas anderes als den erwarteten Typ hinzufügen willst) und zum anderen muss keine Konvertierung vorgenommen werden.
Und wenns schnell gehen soll und trotzdem typsicher sein muss, dann - wie gesagt - bei Strings die StringCollection verwenden. Die hat allerdings keine sort-Methode.

Thema: pdf drucken
Am im Forum: Rund um die Programmierung

Da gabs gerade erst einen Thread zu. Dort wird zwar keine Lösung vorgestellt, aber ein Link auf pdfSharp angegeben: PDFSHARP wie einbinden? - vielleicht hilft Dir das ja.

Thema: Datenbank
Am im Forum: Datentechnologien

Das ist aber ein sehr allgemeiner Wunsch. Weshalb wohl auch noch keiner geantwortet hat. Wofür benötigst Du denn eine Anleitung? Für das Erstellen der Anwendung? Der Datenbank? Das Anbinden der Datenbank? Das Ausführen der Anwednung auf anderen Rechnern? Den Abgleich mit dem Server (was stellst Du Dir da genau vor)?

Thema: dynamisches Array von der Klassen String
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Warum die generische Liste? Ich würde einfach ne StringCollection nehmen. Zu finden im Namespace System.Collections.Specialized

Thema: Problem mit Type.GetType()
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Also ich finde die Exceptions in der Regel ziemlich eindeutig und mit aussagekrätigen Fehlermeldungen versehen. Es mag Ausnahmen geben, aber dass in der MSDN mehr drinsteht liegt in der Natur der Sache. Und natürlich schadet es nie, spätestens bei einem Fehler (meistens auch schon früher) einen Blick in die MSDN zu werfen.