Laden...

Forenbeiträge von Toem99 Ingesamt 511 Beiträge

19.05.2008 - 16:14 Uhr

Hallo paffmann,

schau doch hierzu mal unter
http://forge.mysql.com/wiki/MySQL_Proxy

vielleicht ist das ja das Richtig für Dich.

19.05.2008 - 13:35 Uhr

Ich lass mich ja immer gerne eines besseren belehren! Danke.

Via

Dictionary<string, PointPairList> dic = new Dictionary<string, PointPairList>();
PointPairList lName1 = new PointPairList();

geht es halt doch. Danke für den Tip.

Habe halt bislang wenig mit Dictionaries und Arrays gemacht.
Aber man lernt ja gerne neu dazu.

👍

19.05.2008 - 12:50 Uhr

Recht herzlichen Glühstrumpf lol auch von mir.

Danke für alle hilfreichen Tips !!!

19.05.2008 - 12:45 Uhr

Ich habs grade ausprobiert. Als Array oder auch als Dictonary.
Ich kann beides nicht zu

PointPairList lName = new PointPairList(); 

zuweisen.

Bin auch schon an nem anderen Versuch. Bringt ja alle snix.

19.05.2008 - 12:04 Uhr

Trotzdem danke.

Via Dictionary oder Array geht es leider auch nicht.

Such ich mir halt nen anderen Weg.

🤔

19.05.2008 - 11:33 Uhr

Schon Mist. Ich muss für jeden gefundenen Satz im Chart eine Liste anmelden.
Wäre ja auch zu schön gewesen. NAja

19.05.2008 - 11:18 Uhr

Kann mir jemand sagen, ob ich selbst zusammengebaute Variablen im Programm irgendwie nutzen kann? z.B.

string lName = "list" + MA[i].ToString();
PointPairList lName = new PointPairList();

Ich baue eine Variable list mit der MA-Kennung zusammen. Also z.B. list01.
Diese möchte ich anschließend weiter verwenden und ansprechen können.

Jemand darüber Kenntnisse?

16.05.2008 - 15:28 Uhr

Definier doch einfach in Form 1 eine

public static class MyVars : Object
    {
           public static fileslistbox name;
}

Weise der Variablen die Filelistbox zu und Du solltest ohne Probleme via

MyVars.fileslistbox...

in Form2 auf die Werte zugreifen können.

16.05.2008 - 08:45 Uhr

Wie sieht denn dein Code dazu aus?

16.05.2008 - 08:39 Uhr

Sieht doch ganz so aus, als hättest Du den Namen doppelt vergeben. Denn so wie es angezeigt wird, ist es nicht das selbe Property, da C# Groß- und Kleinschreibung unterscheidet.
Und da ist halt ValidTo nicht gleich validto.
Ich würde einfach mal den Code durchsuchen lassen.

15.05.2008 - 13:25 Uhr

Ich hab das auf einem etwas unkonventionellen Wege gelöst

z.B. Menüeintrag der sehr sehr lang ist und nicht in eine Reihe passt

dann nimmst Du Dir aus einer ASCII txt-Datei das Zeichen für "neue Zeile" und fügst das an der notwendigen Postion ein:

z.B. Menüeintrag der sehr sehr lang ist
und nicht in eine Reihe passt

15.05.2008 - 13:12 Uhr

Moin Leute,
ich hab meinen doofen Tag.
Kann mir kurz jemand sagen, wie ich einen Default-Button definiere?

Also, wenn ich eine Eingabe mache und REturn drücke, das diese Button automatisch angestossen wird?

14.05.2008 - 09:31 Uhr

So, hat sich wohl erledigt.

Ich habe

Pfad = Pfad.Replace("\\", "\\\\");

in den Code eingebaut. Damit funktionierts.

14.05.2008 - 08:48 Uhr

Ich habe durchdebugt:
Ergebnis: "Load Data InFile 'D:\Temp\postleitzahlen_v10.txt' Into Table plz (PLZ, Ort, ID_Landkreis, Ortsteil, ID_Bundesland, Bundesland);"

In dem Moment, wo der Execute angestossen wird, ist dies immer noch im Strin okay, trotzdem bekomme ich die Meldung:

File 'D:Temppostleitzahlen_v10.txt' not found

14.05.2008 - 08:28 Uhr

Guten Morgen Leute,
keiner von Euch eine Idee oder einen Ansatz?

13.05.2008 - 15:26 Uhr

verwendetes Datenbanksystem: <MySql>

Hallo Leute,

ich möchte via

            OpenFileDialog openFileDialog1 = new OpenFileDialog();
            openFileDialog1.Filter = "txt files (*.txt)|*.txt|All files (*.*)|*.*";
            if (openFileDialog1.ShowDialog() == DialogResult.OK)
                Pfad = openFileDialog1.FileName;
            string direkt = "Load Data InFile '" + Pfad + "' Into Table plz (PLZ, Ort, ID_Landkreis, Ortsteil, ID_Bundesland, Bundesland);";
            MySqlConnection myConn = new MySqlConnection(MyVars.ConnectionString);
            MySqlCommand myCommand = new MySqlCommand(direkt, myConn);
            MySqlDataAdapter myAdapter = new MySqlDataAdapter(myCommand);
            myConn.Open();
            //myCommand.ExecuteNonQuery();
            myCommand.ExecuteReader();
            dataGridView1.Refresh();

Daten aus einer Texttabelle in die Datenbank importieren. Vom code her sollte das auch klappen. Allerdings verliert der Pfad jedesmall die Trennzeichen:
z.B. aus D:\temp wir plötzlich d:temp

Kann mir jemand helfen?

13.05.2008 - 10:18 Uhr

Hallo,

ich denke darüber nach eine Fortschrittsanzeige selbst zu erstellen. Nicht so einen Fortschrittsbalken, sondern eher wie eine Tankanzeige, die sich dann langsam füllt.
Ich weiß nur noch nicht so recht, wie ich anfangen soll.

Wenn also jemand einen Tip hat, immer her damit.

Oder weiß jemand, ob es so was schon fertig gibt? Ich habe bei google nix gefunden.

06.05.2008 - 16:14 Uhr

Ich würde einfach mal unter www.php-homepage.de schauen. Da findest Du alles hübsch erklärt was Du brauchst.

06.05.2008 - 14:59 Uhr

So, hat sich gerade erledigt. Die Namen der Access Felder dürfen wohl keine Blanks enthalten. Also z.B. immer

        DatumVon oder Datum_Von anstelle von [Datum Von]   

verwenden. Ansonsten kann wohl kein Update generiert werden.

Wieder mal was gelernt.

06.05.2008 - 14:56 Uhr

syntax error (missing operator) in query expression '((ID=?) AND ((?=1 AND Urlaub Von IS NULL) OR (Urlaub Von = ?))

usw.

06.05.2008 - 14:19 Uhr

So wie es aussieht, wird überhaupt kein Update generiert. Und das für kein Fenster. Komisch, das es dann z.B. bei den Stammdaten klappt.
Ich bin fast soweit, die Access DB rauszuhauen und alles via MySQL und PHP zu machen.

06.05.2008 - 12:58 Uhr

Hallo juetho,

ich habe das jetzt mehrmals umgebaut. Im momentanen Fall habe ich für jede Tabelle ein eigenenes Fenster in welchem ich jeweils die DataGrids fülle. Hierzu setze ich im Main die Connection.

MyVars.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=D:\\temp\\urlaube.mdb;";
            
            try
            {
                MyVars.ODbCon = new OleDbConnection(MyVars.ConnectionString);
                if (!MyVars.bConnected)
                {
                    MyVars.ODbCon.Open();
                    MyVars.bConnected = true;
                    toolStripStatusLabel1.Text = "Connected";
                }
                else
                {
                    return;
                }
            }
            catch (OleDbException ex)
            {
                MessageBox.Show(ex.ToString());
                return;
            }

In den jeweiligen Fenstern mache ich dann folgendes:

using (OleDbConnection conStart = new OleDbConnection(MyVars.ConnectionString))
            {
                daUrlaub = new OleDbDataAdapter("SELECT * FROM Urlaub ORDER BY Id;", conStart);
                cbUrlaub = new OleDbCommandBuilder(daUrlaub);
                dsUrlaub = new DataSet();
                daUrlaub.Fill(dsUrlaub);
            }
            
            dataGridView1.DataSource = dsUrlaub.Tables[0];

Updaten tue ich dann wie Du sagtest via:

daUrlaub.Update(dsUrlaub.Tables["CurrentName"]);

Witzig ist, das ich z.B. die Mitarbeiterliste auf diese Art ohne Probleme pflegen kann, es jedoch bei den Urlauben "knallt". Ein Index ist vorhanden, das hab ich nochmal geprüft.
Noch eine Idee dazu?

06.05.2008 - 08:46 Uhr

verwendetes Datenbanksystem: MS-Access 2003

Hallo,
ich benutze für verschiedene Tabellen das selbe DataGrid. Füllen tu ich das wie folgt:

            ds = new DataSet();
            da = new OleDbDataAdapter("SELECT ID, NACHNAME, VORNAME, DATUM, KOMMT, GEHT, PAUSE, GEHT - KOMMT - pause AS SUMME FROM zeitenTab ORDER BY DATUM;", MyVars.ODbCon);
            cb = new OleDbCommandBuilder(da);

            da.Fill(ds);
            dataGridView1.DataSource = ds.Tables[0]; 

Zur Laufzeit schalte ich dann ggf. auf eine andere Tabelle um und fülle diese in das DataGrid:

            ds = new DataSet();
            da = new OleDbDataAdapter("SELECT * FROM urlaubsTab;", MyVars.ODbCon);
            cb = new OleDbCommandBuilder(da);

            da.Fill(ds);
            dataGridView1.DataSource = ds.Tables[0]; 

Funktioniert alles auch tadelos. Aber jetzt mal meine Frage. Der Update geht via:

da.Update(ds.Tables[0]);

Wenn ich mir nur die Daten einer Tabelle anzeigen lasse und Update, klappt dies tadellos. Schalte ich jedoch um auf die zweite Tabelle und will dann dort updaten, kommt es zu einem Fehler in der Update-Syntax.

Kann es sein, das ich etwas vergessen habe?

30.04.2008 - 16:00 Uhr

Hallo Leute,

wie kann ich eigentlich vor einem Update ermitteln, wie wieviele und ggf. auch welche Werte sich in einem DataGrid geändert haben?
Ich habe bislang dazu nichts passendes finden können.

30.04.2008 - 08:59 Uhr

Du schreibst, das was man auf der ersten Seite runer laden kann, wäre die jeweils akteuelle Version. Aber mir sieht das gar nicht so danach aus.
Die File haben alle ein Datum von 2005.
Kann man irgendwo die aktuelle Version und ein Testfile herbekommen?

24.04.2008 - 09:17 Uhr

Nur schade, das unter

http://www.codeknights.de/download_skinlib.php

nichts zu finden ist !?!?

23.04.2008 - 16:20 Uhr

Ich möchte halt auch, das alle Fenster die ich nach der Änderung öffne das neue Farbschema nutzen.

23.04.2008 - 16:17 Uhr

Würde also heissen, ganz einfach

Form.DefaultBackColor = Color.Blue;

geht auf gar keinen Fall?

Oder kann ich doch irgendwie die Default-Color setzen?

Eine neue Ableitung zu machen und davon dann alle bereits bestehenden Fenster abzuleiten, dafür ist mir die Applikation inzwischen zu groß.

23.04.2008 - 13:59 Uhr

Hallo zusammen,

ich möchte auf einfachem Wege die z.B. Hintergrundfarbe für die gesamte Applikation zur Laufzeit ändern.
Es sollten also alle geöffneten Fenster und alle zu öffnenden Fenster dann mit dieser Farbe gezeigt werden.
Ich dachte zunächst, ich könnte via .defaultBackColor vorgehen, aber das ist readonly.

Wer hat einen kleinen Tip für mich?

22.04.2008 - 11:10 Uhr

Hallo,

wie ich Gruppen in eine ListView via Code hinbekomme weiß ich ja.
Kann mir jemand kurz erklären, wie das im FrontEnd mit den Properties (Columns, Groups, Items) geht? Ich finde dazu keine Beschreibung.

Danke

15.04.2008 - 17:15 Uhr

Den Ansatz hab ich gebraucht, danke!

15.04.2008 - 16:53 Uhr

Ist ja alles schon und gut:

26000.00 in der Anzeige ->

double xy = Double.Parse(Txt_Brutto.Text);
-> 2600000.0

CultureInfo ciGerman = new CultureInfo("de-DE");
Thread.CurrentThread.CurrentCulture = ciGerman;
double xx = Convert.ToDouble(Txt_Brutto.Text, ciGerman);
-> 2600000.0

Ist aber beides nicht 26000,00

15.04.2008 - 16:16 Uhr

Schätze, genau das ist mein Problem.

Aber irgendwie komm ich mit CultureInfo nicht klar.

15.04.2008 - 16:01 Uhr

Ha genau,

                double x = Double.Parse(Txt_Brutto.Text) / 1.19;
                double y = Double.Parse(Txt_Brutto.Text) * 0.19 / 1.19;
                Txt_Netto.Text = Math.Round(x, 2).ToString();
                Txt_MwSt.Text = Math.Round(y, 2).ToString();

Sollte das denn echt so falsch sein?

15.04.2008 - 15:37 Uhr

Hallo,

ich frage aus der Datenbank (mysql) Einkaufswerte ab, z.b. 26000.

Nutze ich im FrontEnd eine TextBox zur Anzeige steht dann dort 2600000.
Daraufhin habe ich eine MaskedTextBox genommen und den Wert auf Decimal(2) geändert. Anzeige jetzt 26000,00.

Sobald ich aber damit rechne, z.b. 19 % MwSt nimmt das System anscheinend wieder 2600000 als Grundlage. Denn 19% von 26000 sind bestimmt keine 415126.

Egal was ich in der MaskedTextBox einstelle, ich bekomms nicht ordentlich hin.

Ich muss dazu allerdings sagen, das ich ein englisches XP mit Deutscher Währungseinheit nutze. Kanns daran liegen?

14.04.2008 - 17:17 Uhr

Hört sich alles sehr gut an. Ich habe nicht die zeit und Muße gehabt hier alle Einträge zu lesen. Dein Updater liest also die Updates vom Server?

Wie wäre es, wenn der Updater im Hintergrund mitläuft und bei neuen Programmversionen diese schon einmal "Stückchenweise" auf den Rechner lädt, ohne den User sonderlich bei der Arbeit zu stören.

Das würde den eigentlichen Update Vorgang bei großen Programmpaketen sehr beschleunigen, da nicht mehr die Leitung der Knackpunkt ist, sondern der jeweilige Rechner des Anwenders.

Oder ist die Idee so falsch?

14.04.2008 - 09:26 Uhr

mmh, das gibt dann aber ne Menge zu coden.

Ich setz die ListView so in ca. 80 Forms ein.

Kann ich nicht z.B. in der ListView irgendwo klicken und alle über dieser Position befindlichen Werte Gruppieren?

14.04.2008 - 08:39 Uhr

Morgen Leute,

ich sitz mal wieder sprichwörtlich wie der Ochs vorm Berge und krieg nix auf die Reihe. Ich habe folgende Ableitung meiner ListView gemacht, um Sortieren zu können:

using System;
using System.Collections.Generic;
using System.Text;
using System.Windows.Forms;
using System.Drawing;
using System.Runtime.InteropServices;


namespace AutoDB.Controls
{
	// Klasse für ListView enthält Code für die Sortierung via HeaderClick
	public class MyListView : ListView
	{
		private ListViewColumnSorter lvwColumnSorter;
        private Int32 lvCol = 0;                                // aktuelle Sortier-Column 
		private Int32 lvColOld = 0;                             // Hilfsvariable alte Column
		private String lvHeaderOrig;                            // originaler Header-Text
		private String lvHeader;                                // aktueller Header-Text
        
		public MyListView()
		{
			lvwColumnSorter = new ListViewColumnSorter();
			this.ListViewItemSorter = lvwColumnSorter;
			// Font MUSS UniCode beherrschen, sonst gleiche Größe und 
			// gleicher Style wie Voreinstellung
			//Font headerFont = new Font("Arial", Font.Size, Font.Style);
			//this.Font = headerFont;
			// Flackern verringern oder vermeiden
			this.DoubleBuffered = true;
		}


		protected override void OnColumnClick(ColumnClickEventArgs e)
		{
			base.OnColumnClick(e);

			lvCol = e.Column;

			// Bei Columnwechsel den alten Text in der alten Column restaurieren
			if (lvCol != lvColOld)
				if (lvHeaderOrig != null)
					this.Columns[lvColOld].Text = lvHeaderOrig;

			// Prüfen, ob geklickte Column die Column ist, welche Sortiert werden soll
			if (e.Column == lvwColumnSorter.SortColumn)
			{
				// Ändern der Sortierreihenfolge für diese Column
				if (lvwColumnSorter.Order == SortOrder.Ascending)
				{
					lvwColumnSorter.Order = SortOrder.Descending;
					lvHeader = lvHeaderOrig + "  " + '\u02c5';
				}
				else
				{
					lvwColumnSorter.Order = SortOrder.Ascending;
					lvHeader = lvHeaderOrig + "  " + '\u02c4';
				}
				this.Columns[lvCol].Text = lvHeader;
				lvHeader = lvHeaderOrig;
			}
			else
			{
				// Die Column die Sortiert werden soll ist standardmäßig Ascending
				lvwColumnSorter.SortColumn = lvCol;
				lvwColumnSorter.Order = SortOrder.Ascending;
				lvHeaderOrig = this.Columns[lvCol].Text;
				lvHeader = lvHeaderOrig + "  " + '\u02c4';
				this.Columns[lvCol].Text = lvHeader;
			}

			// Ausführen der Sortierung mit diesen Optionen
			this.Sort();

			lvColOld = lvCol;
		}


        protected override void OnKeyUp(KeyEventArgs e)
        {
            base.OnKeyUp(e);

            if (e.KeyCode == Keys.F11)
            {
                this.Groups.Add(new ListViewGroup("Gruppe", HorizontalAlignment.Left));
                this.View = View.Details;
                foreach (ListViewItem item in this.Items)
                {
                    item.Group = this.Groups[0];
                }
             }
            if (e.KeyCode == Keys.F12)
            {
                try
                {
                    this.Groups.RemoveAt(0);
                    this.Groups.Clear();
                }
                catch
                {
                }
            }
        }
	}
}

Das klappt auch wunderbar. Allerdings fülle ich die ListView aus der Datenbank heraus immer ohne Gruppierungen. Diese sollen jetzt zur Laufzeit erstellt werden.

Beispiel: Ich bin in der Kundenmaske bei Umsätzen bis 15.000,-!! Jetzt klicke ich eine der Rows mit diesem Umsatz an und es wird eine Gruppe aller Umsätze bis zur dieser Grenze erstellt.

Jemand einen Tip, wie ich das bewerkstelligen kann? Danke schon mal...

08.04.2008 - 13:50 Uhr

Gibt es auch die Möglichkeit, das ohne OwnerDraw zu realisierien?

Wie Du sicher weißt, hat eine ListView wenn Du die Column oben anklickst bestimmte Eigenschaften (z.B. das Highlithing, wenn Du mit der Maus drauf bist).
Das alles geht meines Erachtens mit OwnerDraw nicht.

08.04.2008 - 13:29 Uhr

Hat sich jetzt so weit erledigt. Mit OwnerDraw und Graphics.DrawString geht es doch irgendwie.

Doch wie es halt so kommt, der Chef ist halt nie zufrieden.

Jetzt soll die Schrift im ColumnHeader um ein Icon oder so ergänzt werden.
Soll dann halt in etwa so aussehen:

Geht so etwas? Und wenn ja mit welchem Ansatz?

08.04.2008 - 10:18 Uhr

Na, hilft mir aber nicht wirklich weiter.

08.04.2008 - 09:51 Uhr

Also, bei mir ändert sich nix. Gar nix.

Aber anderer Vorgang: Wenn ich nur die Überschrift im Header für die gewählte Column einfärben will:

protected override void OnDrawColumnHeader(DrawListViewColumnHeaderEventArgs e)
        {
            base.OnDrawColumnHeader(e);

            ......

            if (e.Header.Index == lvCol)
                
            ..... hier irgendwie färben

            .....
        }

Die aktuelle Colum habe ich ja. Aber ich komm nicht an die Eigenschaften Fore- oder BackColor. - Nur jeweils für die gesamte ListView.

07.04.2008 - 17:18 Uhr

Sorry, alles zurück
Es passiert gar nix, er läuft den Code durch und setzt alles. Im FrontEnd jedoch ändert sich nix.

07.04.2008 - 17:11 Uhr

Das hatte ich auch schon, macht die gesamte ListView andersfarbig. X(

07.04.2008 - 16:45 Uhr

Haste kurzen Beispielcode?
Hört sich zwar doof an, aber mir dröhnt unglaublich der Schädel.

Ich komm nur auf Mist grade:

            foreach (Items x in Columns[lvCol])
            {
                Items[x].ForeColor = Color.Blue;
            }
07.04.2008 - 16:30 Uhr

Na, jetzt reden wir Beide leicht aneinander vorbei!

Ich kann die Werte nicht schon beim Adden einfärben, sondern benötige eine einfarbige Liste. Die hab ich ja.

Jetzt klick ich zum Sortieren auf einen Header und sortiere gesamte Column.

Aber genau diese Column möchte ich jetzt irgendwie kenntlich machen. Am liebsten durch eine andere Farbe.

Und da häng ich momentan total.

Dazu auch ne Idee?

07.04.2008 - 14:04 Uhr

KLasse, danke. Ich schreibe jetzt also nicht die Texte in die ListView, sondern ich "zeichne diese". Soweit Okay.

Aber wie kann ich jetzt für eine Column die Farbe ändern und die restlichen Columns unverändert lassen?

Hab meinen blöden Tag heute, sorry

07.04.2008 - 13:29 Uhr

Zusatz, sorry:
Ich arbeite nicht direkt mit einer ListView, sondern mit einem davon abgeleiteten Control:


using System;
using System.Collections.Generic;
using System.Text;
using System.Windows.Forms;

namespace AutoDB.Controls
{
    // Klasse für ListView enthält Code für die Sortierung via HeaderClick
    class MyListView : ListView
    {
        private ListViewColumnSorter lvwColumnSorter;

        public MyListView()
        {
            lvwColumnSorter = new ListViewColumnSorter();
            this.ListViewItemSorter = lvwColumnSorter;
        }

        protected override void OnColumnClick(ColumnClickEventArgs e)
        {
            base.OnColumnClick(e);

            // Determine if clicked column is already the column that is being sorted.
            if (e.Column == lvwColumnSorter.SortColumn)
            {
                // Reverse the current sort direction for this column.
                if (lvwColumnSorter.Order == SortOrder.Ascending)
                {
                    lvwColumnSorter.Order = SortOrder.Descending;
                }
                else
                {
                    lvwColumnSorter.Order = SortOrder.Ascending;
                }
            }
            else
            {
                // Set the column number that is to be sorted; default to ascending.
                lvwColumnSorter.SortColumn = e.Column;
                lvwColumnSorter.Order = SortOrder.Ascending;
            }

            // Perform the sort with these new sort options.
            this.Sort();
        }

    }
}
07.04.2008 - 13:07 Uhr

Ehrlich gesagt, nach einigem Rumprobieren jetzt.

zu klein 😁