Laden...
Avatar #avatar-2285.gif
debo myCSharp.de - Member
Student (Elektrotechnik) Sendenhorst Dabei seit 15.05.2007 4 Beiträge
Benutzerbeschreibung

Forenbeiträge von debo Ingesamt 4 Beiträge

16.05.2007 - 19:53 Uhr

Vielen Dank suanikim!
Finde dein Programm super vom Aufbau her. Ich weiss auch nicht warum ich nicht den Kalender verwendet habe?! 🤔
Super Sache
Das Problem ist auch bei mir, dass ich nicht viel Zeit habe wegen Studium und privat Leben (Freundin ^^). Aber ich werde mal ein paar Änderungen vornehmen.

Danke nochmal

15.05.2007 - 18:07 Uhr

und die Projekt-Dateien:

15.05.2007 - 18:00 Uhr

und zu guter letzt der derzeitige Quelltext:


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Data.Odbc;

//-------------------------------------------------------------------------------------------------
// debo 2007
// "IO_Admin" 
//-------------------------------------------------------------------------------------------------

namespace IO_Admin
{
    public partial class MainForm : Form
    {
        public MainForm()
        {
            InitializeComponent();
        }

        //-----------------------------------------------------------------------------------------
        // INITIALISIERUNGEN: Datenbankinformationen und Variablenfestlegung
        //-----------------------------------------------------------------------------------------
        string MyConString = "DRIVER={MySQL ODBC 3.51 Driver};" +
            "SERVER=localhost;" +       // <-- Server
            "DATABASE=io_database;" +   // <-- Datenbank
            "UID=XXXXX;" +               // <-- Login
            "PASSWORD=XXXXX;" +     // <-- Password
            "OPTION=3";                 // <-- MySQL-Optionen
        OdbcConnection MyConnection;
        OdbcCommand MyCommend = new OdbcCommand();
        OdbcDataReader MyDataReader;
        //-----------------------------------------------------------------------------------------
        // FUNKTION: Verbinden und Beenden von MySQL
        //-----------------------------------------------------------------------------------------
        private void MySQL_verbinden()
        {
            try
            {
                MyConnection = new OdbcConnection(MyConString);
                MyConnection.Open();
                MyCommend.Connection = MyConnection;
            }
            catch (OdbcException MyOdbcException) // <-- Fängt alle ODBCExceptions ab
            {
                for (int i = 0; i < MyOdbcException.Errors.Count; i++)
                {
                    MessageBox.Show("ERROR #" + i + "\n" +
                            "Message: " +
                            MyOdbcException.Errors[i].Message + "\n" +
                            "Native: " +
                            MyOdbcException.Errors[i].NativeError.ToString() + "\n" +
                            "Source: " +
                            MyOdbcException.Errors[i].Source + "\n" +
                            "SQL: " +
                            MyOdbcException.Errors[i].SQLState + "\n");

                }
            }
        }
        private void MySQL_beenden()
        {
            MyCommend.Cancel();
            MyConnection.Close();
        }
        //-----------------------------------------------------------------------------------------
        // FUNKTION: datagridview Daten auslesen und in gbox_input_delete einfügen
        //-----------------------------------------------------------------------------------------
        private void DatenMakierung()
        {
            if (dataGridView.CurrentRow != null)
            {
                int row = Convert.ToInt16(dataGridView.CurrentRow.Index.ToString());
                string[] Daten = new string[4];
                for (int i = 0; i < 4; i++)
                {
                    Daten[i] = dataGridView.Rows[row].Cells[i].Value.ToString();
                }
                tbox_date_io.Text = Daten[0];
                cbox_type_io.SelectedIndex = cbox_type_io.FindString(Daten[1], -1); ;
                tbox_descr_io.Text = Daten[2];
                tbox_value_io.Text = Daten[3];
            }
        }
        //-----------------------------------------------------------------------------------------
        // FUNKTION: Daten anzeigen / suchen
        //-----------------------------------------------------------------------------------------
        private void DatenFinden()
        {
            dataGridView.Rows.Clear();

            string  Monat = "%";
            string  Beschreibung = tbox_descr_show.Text, 
                    Betrag = (tbox_value_show.Text).Replace(',', '.');

            if (Beschreibung == "") Beschreibung = "%";
            if (Betrag == "")       Betrag = "%";
            if (cbox_month_show.Text != "")
                if (cbox_month_show.SelectedIndex < 10)
                    Monat = "0" + cbox_month_show.SelectedIndex;

            if (!((cbox_input.Checked == false) && (cbox_output.Checked == false)))
            {
                string Abfrage = "SELECT * FROM io_table ";
                if ((cbox_input.Checked == true) && (cbox_output.Checked == false))
                    Abfrage = Abfrage + "WHERE type_of_IO='Einnahme'";
                if ((cbox_input.Checked == false) && (cbox_output.Checked == true))
                    Abfrage = Abfrage + "WHERE type_of_IO='Ausgabe'";
                if ((cbox_input.Checked == true) && (cbox_output.Checked == true))
                    Abfrage = Abfrage + "WHERE type_of_IO LIKE '%' ";
                MyCommend.CommandText = Abfrage + "AND date LIKE '%." + Monat + 
                                        ".%' AND description LIKE '" + Beschreibung + 
                                        "' AND value LIKE '" + Betrag + "' ORDER BY date";
                MyDataReader = MyCommend.ExecuteReader();
                while (MyDataReader.Read())
                {
                    dataGridView.Rows.Add(MyDataReader.GetString(1), MyDataReader.GetString(2), 
                        MyDataReader.GetString(3), MyDataReader.GetValue(4));
                }
                MyDataReader.Close();
            }
        }
        //-----------------------------------------------------------------------------------------
        // FUNKTION: Daten einfügen / löschen
        //-----------------------------------------------------------------------------------------
        private void DatenVerarbeiten()
        {
            if ((tbox_date_io.Text != "") && (tbox_descr_io.Text != "") &&
                (tbox_value_io.Text != "") && (cbox_type_io.Text != ""))
            {
                string  Datum = tbox_date_io.Text, Typ = cbox_type_io.Text,
                        Beschreibung = tbox_descr_io.Text,
                        Betrag = (tbox_value_io.Text).Replace(',', '.');

                MyCommend.CommandText = "SELECT * FROM io_table WHERE date='" + Datum +
                    "' AND type_of_IO='" + Typ + "' AND description='" + Beschreibung +
                    "' AND value='" + Betrag + "'";

                MyDataReader = MyCommend.ExecuteReader();
                MyDataReader.Read();

                if (MyDataReader.HasRows == false)
                {
                    MyDataReader.Close();
                    MyCommend.CommandText = "INSERT INTO io_table(date,type_of_IO,description,value) VALUES('" 
                        + Datum + "','" + Typ + "','" + Beschreibung + "'," + Betrag + ")";
                    MyCommend.ExecuteNonQuery();
                }
                else
                {
                    string id = MyDataReader.GetString(0);
                    MyDataReader.Close();
                    MyCommend.CommandText = "DELETE FROM io_table WHERE ID_IO='" + id + "'";
                    MyCommend.ExecuteNonQuery();
                }
                MyDataReader.Close();
            }
        }
        //-----------------------------------------------------------------------------------------
        // FUNKTION: Textboxen und Checkbox reseten für Suchabfrage
        //-----------------------------------------------------------------------------------------
        private void Gbox1Reset()
        {
            cbox_month_show.Text = "";
            tbox_descr_show.Text = "";
            tbox_value_show.Text = "";
        }
        //-----------------------------------------------------------------------------------------
        // FORMEIGENSCHAFTEN: Funktionen zuweisen, Verhalten bearbeiten...
        //-----------------------------------------------------------------------------------------
        private void MainForm_Load(object sender, EventArgs e)
        {
            MySQL_verbinden();
        }

        private void MainForm_FormClosing(object sender, FormClosingEventArgs e)
        {
            MySQL_beenden();
        }

        private void btn_show_Click(object sender, EventArgs e)
        {
            DatenFinden();
        }

        private void btn_input_Click(object sender, EventArgs e)
        {
            DatenVerarbeiten();
            Gbox1Reset();
            DatenFinden();
        }

        private void btn_delete_Click(object sender, EventArgs e)
        {
            DatenVerarbeiten();
            Gbox1Reset();
            DatenFinden();
        }

        private void dataGridView_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            DatenMakierung();
        }
    }
}
15.05.2007 - 17:59 Uhr

Hi!
Ich wollte mich erstmal vorstellen und kurz was dazu sagen wie ich zu C# gekommen bin. Mein Name ist Dennis bzw. mein Nick debo. Ich hoffe hier im Forum werde ich ein paar Sachen beitragen können. So jetzt zu C#...
Ich habe 3 Jahre Delphi auf der Berufsschule teilweise gelernt und 1 Jahr C++ (ITA). Erst letztes Jahr während eines IT-Projektes im Studium bin ich zu C# gekommen. Ich fand die Umgebung klasse. Die Möglichkeiten Web-Andwendungen zu erstellen und gleichzeitig die Funktionen auf dem lokalen Rechner verwenden zu können fand ich super. Deswegen wollte ich weiter in C# eintauchen 😁

So jetzt zu meinem Projekt, welches noch in den Kinderschuhen steckt.

Ich habe mir schon oft Gedanken drüber gemacht, wo mein ganzes Geld wohl verschwindet bzw. wo ich es ausgebe. Deswegen habe ich mir überlegt, dass ich mir sozusagen ein Buchführungsprogramm schreibe.
Datenbankimplementierung->Visualisierung der Daten.
Zur Zeit habe ich nur das Grundgerüst fertig gestellt. Daten auslesen, löschen, anzeigen.

Ich habe MYSQL gewählt, da ich es schon auf meinem Home-Webserver laufen habe.

Was sollte das Programm (in naher Zukunft 😉 ) können:
--> Oberfläche visuel anschaulicher machen. Menüstrip, Iconbar, schöne Grafiken,...
--> Config-Datei für die Datenbank
--> Datenbanktabelle erstellen lassen
--> Monatsübersichten drucken bzw. in Textdateien speichern
--> Diagramme einfügen (Kreisdiagramm/Balkendiagramm) zur Übersicht
--> ....

Derzeitige MySQL Syntax:
CREATE TABLE io_table (
ID_IO int(4) NOT NULL auto_increment,
date varchar(10) character set latin1 collate latin1_german1_ci NOT NULL,
type_of_IO text character set latin1 collate latin1_german1_ci NOT NULL,
description text character set latin1 collate latin1_german1_ci NOT NULL,
value double NOT NULL,
PRIMARY KEY (ID_IO)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=13 ;

Ich bin für alle Kritiken offen, da ich gerne dazu lerne und schliesslich kann eine Kritik nie schaden. Für Tipps bin ich ebenfalls offen.

Hier ein Screenshot zu meiner derzeitigen Oberfläche: