Laden...

Forenbeiträge von mpeter Ingesamt 27 Beiträge

26.11.2017 - 14:58 Uhr

double g;
string i = Convert.ToString(100);

werden beim start initalisiert.


 private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
        {

            if (comboBox1.SelectedIndex == 1)
            {
                g = 2.5;
            }
            else if (comboBox1.SelectedIndex == 0)
            {
                g = 1.5;
            }
        }

werden die Werte in der Combobox slektiert.


       private void button1_Click_1(object sender, EventArgs e)
        {



            ;
            double result;

            result = Convert.ToDouble(i) - g;

            
            textBox1.Text = result.ToString("0.00");
            


            }

hier findet auf klick die Berechnung statt

Mit besten Grüßen

Michael

26.11.2017 - 11:14 Uhr

Hallo an alle,

ich habe folgendes Problem. Ich habe eine Textbox die bei Onload des Forms mit einem Wert gefüll wird. Nunn möchte ich das wenn der Wert einer Combobox sich ändert auch der Wert in der Textbox ändert. Beim ersten Wechsel klappt das auch, nur wenn ich das 2. mal den wert wechsel nimmt er immer als Grundlage den Startwert und nicht den aktuellen Wert aus der Textbox.

Wo habe ich einen Denkfehler??

Bis dann Michael

27.09.2015 - 18:29 Uhr

ich habe es jetzt selber hinbekommen, ich frage jetzt den Zustand direkt in der if abfrage ab und nicht mehr über den SQL String.



string connetionString = null;
            OleDbConnection connection;
            OleDbDataAdapter oledbAdapter = new OleDbDataAdapter();
            DataSet ds = new DataSet();
            int i = 0;
            connetionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=H:\\datenbanken\\fitness.accdb";
            connection = new OleDbConnection(connetionString);
            try
            {
                connection.Open();
                oledbAdapter.SelectCommand = new OleDbCommand("SELECT schlafen FROM einstellungen ;", connection);
                oledbAdapter.Fill(ds);
                oledbAdapter.Dispose();
                connection.Close();

                

                if (ds.Tables[0].Rows[0]["schlafen"].ToString() == "True")
                {    
                    MessageBox.Show(ds.Tables[0].Rows[i].ItemArray[0].ToString());
                    MessageBox.Show("testen");
                    textBox1.Text = ds.Tables[0].Rows[0]["schlafen"].ToString();

                }
                if (ds.Tables[0].Rows[0]["schlafen"].ToString() == "False")
                {
                    MessageBox.Show(ds.Tables[0].Rows[i].ItemArray[0].ToString());
                    MessageBox.Show("kein Testen");
                    textBox2.Text = ds.Tables[0].Rows[i].ItemArray[0].ToString();
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }

mit besten Grüßen

27.09.2015 - 18:08 Uhr

ich habe meine Abfrage mal so gemacht das ich die Zustände der DB in einer Textbox anzeigen lasse und diese dann per if abfrage auswerten:,


con.Open();

            cmd.CommandText = ("SELECT schlafen FROM einstellungen");

            MessageBox.Show(cmd.CommandText);

            {
                OleDbDataReader de = cmd.ExecuteReader();
                while (de.Read())
                {


                    textBox1.Text = Convert.ToString(de["schlafen"]);


                    if (textBox1.Text == "True")
                    {
                       
                        MessageBox.Show("testen");
                    }
                    if (textBox1.Text == "False")

                    {
                        MessageBox.Show("kein testen");

                    }


                }
                de.Close();
                con.Close();

            }

das klappt einwandfrei im Gegensatz zu meiner eigentlichen Abfrage.

Wo ist nur mein Fehler?

27.09.2015 - 17:54 Uhr

ich habe jetzt anstelle der Messagebox 2 Textboxen erstellt die mir die Werte ausgeben.

aber egal welchen wert ich in Access einstelle er bringt mir das richtige resultat allerding springt er nie in die abfrage:



if (ds.Tables[0].Rows.Count == 0)
                {    
                    MessageBox.Show(ds.Tables[0].Rows[i].ItemArray[0].ToString());
                    MessageBox.Show("testen");
                    textBox1.Text = ds.Tables[0].Rows[i].ItemArray[0].ToString();


                }

diese wird komplett ignoriert.

Ich habe zum Testen auch mal die SQL Abfrage so geändert:


oledbAdapter.SelectCommand = new OleDbCommand("SELECT schlafen FROM einstellungen;", connection);

wie schon geschrieben bekomme ich den richtigen Zustand immer angezeigt.

27.09.2015 - 17:36 Uhr

Hallo an alle,

ich habe folgendes Problem, ich frage per Sql eine Access Tabelle nach eine Ja nein Feld ab. Ich hab insgesamt 4 Messageboxen eingebaut um die jeweiligen Resultate anzuzeigen.
Die Anzeigen der Messageboxen liefern auch das richtige Resultat zurück. Allerdings egal welchen zustand die Access Tabelle annimmt er nimmt diesen Wert nicht an.


 string connetionString = null;
            OleDbConnection connection;
            OleDbDataAdapter oledbAdapter = new OleDbDataAdapter();
            DataSet ds = new DataSet();
            int i = 0;
            connetionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=H:\\datenbanken\\fitness.accdb";
            connection = new OleDbConnection(connetionString);
            try
            {
                connection.Open();
                oledbAdapter.SelectCommand = new OleDbCommand("SELECT schlafen FROM einstellungen Where schlafen = true;", connection);
                oledbAdapter.Fill(ds);
                oledbAdapter.Dispose();
                connection.Close();

                

                if (ds.Tables[0].Rows.Count == 0)
                {    
                    MessageBox.Show(ds.Tables[0].Rows[i].ItemArray[0].ToString());
                    MessageBox.Show("testen");
                    

                }
                if (ds.Tables[0].Rows.Count == 1)
                {
                    MessageBox.Show(ds.Tables[0].Rows[i].ItemArray[0].ToString());
                    MessageBox.Show("kein Testen");
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }
        }

Wenn der zustand = True ist läuft er immer in

 if (ds.Tables[0].Rows.Count == 1)

wenn der zustand False ist läuft er ebenfalls in

 if (ds.Tables[0].Rows.Count == 1)

rein.

Wo mache ich den Fehler?

besten Dank im voraus.

25.09.2015 - 09:50 Uhr

Hallo,

das habe ich jetzt gemacht aber leider brachte das auch keinen Erfolg, es bleiben immer noch Balken

25.09.2015 - 09:05 Uhr

Hallo,

danke für eure Unterstützung.

ich habe es jetzt so gelöst das er einwandfrei duchläuft:

using:


using System;
using System.Collections;
using System.Data.OleDb;
using System.Windows.Forms;
using System.Data;
//using System.Web.UI.DataVisualization.Charting;
using Charting = System.Web.UI.DataVisualization.Charting;
using System.Windows.Forms.DataVisualization.Charting;

nadem ich diese Zeile

using System.Web.UI.DataVisualization.Charting; 

auskommetiert habe konnte ich


 var series1 = new Series("gewicht");//Serie anlegen und Namen vergeben
            chart1.Series.Add(series1);
            series1.XValueType = ChartValueType.Date;
            series1.XValueMember = "st_Datum";//Spalte aus der Tabelle abrufen, die die X-Werte darstellt
            series1.YValueType = ChartValueType.Int32;
            series1.YValueMembers = "ge_gewicht";//Spalte aus der Tabelle abrufen, die die Y-Werte darstellt
            series1.ChartType = SeriesChartType.Line;//Diagrammtyp

Add Series einwandfrei anwenden das Problem ist nur das er immer noch nur Balken bringt und keine Linien egal was ich unter SeriesChartType einstelle es bleibt immer die Balken-

25.09.2015 - 05:51 Uhr

wenn ich das mache bekomme ich immer wieder diese Fehlermeldung:

Fehlermeldung:
Schweregrad Code Beschreibung Projekt Datei Zeile
Fehler CS1503 Argument "1": Konvertierung von "System.Web.UI.DataVisualization.Charting.Series" in "string" nicht möglich. fitnessapllikation H:\Projects\fitnessapllikation\fitnessapllikation\frmAusGewicht.cs 52

hier meine using Anweisungen kann es sein das ich da noch einen Fehler habe:


using System;
using System.Collections;
using System.Data.OleDb;
using System.Windows.Forms;
using System.Data;
using System.Web.UI.DataVisualization.Charting;
using Charting = System.Web.UI.DataVisualization.Charting;

24.09.2015 - 13:09 Uhr

Hallo,

ich habe eine kleines Problem wo ich eure Unterstützung brauche.
Ich habe eine MS Access DB aus der ich Daten ziehe um diese in MS Cart auszuwerten.

hier mein Code:

Formular wir initalisiert mit:


 OleDbConnection con = new OleDbConnection();
        OleDbCommand cmd = new OleDbCommand();
        // OleDbDataReader reader;
        ArrayList pnummer = new ArrayList();

hier nun meine Abfrage für MS Chart:



            string fileNameString = "H:\\datenbanken\\fitness.accdb";
            string myConnectionString = "PROVIDER=Microsoft.ACE.OLEDB.12.0;Data Source=" + fileNameString;
            string mySelectQuery = "SELECT st_Datum,ge_gewicht,differenz FROM gewicht;";
            OleDbConnection myConnection = new OleDbConnection(myConnectionString);
            OleDbCommand myCommand = new OleDbCommand(mySelectQuery, myConnection);
            myCommand.Connection.Open();
            OleDbDataReader myReader = myCommand.ExecuteReader(CommandBehavior.CloseConnection);
            chart1.DataBindTable(myReader, "st_Datum");
            

            myConnection.Close();

            var series = new Series("gewicht");//Serie anlegen und Namen vergeben
            series.XValueType = ChartValueType.Date;
            series.XValueMember = "st_Datum";//Spalte aus der Tabelle abrufen, die die X-Werte darstellt
            series.YValueType = ChartValueType.Int32;
            series.YValueMembers = "ge_gewicht";//Spalte aus der Tabelle abrufen, die die Y-Werte darstellt
            series.ChartType = SeriesChartType.FastLine;//Diagrammtyp

mein Problem ist nun das ich nichts richtig einstellen kann als Typ habe ich Fastline angegeben aber ich bekomme trotzdem immer Balken angezeigt.

Wer könnte mich unterstützen oder mir sagen wo ich ein gutes howto finde zum einarbeiten.

Besten Dank

24.08.2015 - 09:39 Uhr

Hallo Alf,

das habe ich ja auch fast alles durchgearbeitet auch Lösungswege auf anderen Sieten habe ich getestet. Was ich nicht verstehe wenn ich diese SQL Abfrage:


cmd.CommandText = "SELECT  SUM(gewicht.differenz) AS sum_Monat FROM gewicht Where st_Datum BETWEEN #08/01/2015# AND #08/31/2015# ";

übergebe läuft alles sauber durch und ich bekomme das Ergebnis angezeigt.
Wenn ich die Abfrage so umbaue:


cmd.CommandText = "SELECT  SUM(gewicht.differenz) AS sum_Monat FROM gewicht Where st_Datum BETWEEN '" + textbox1.text + "' AND '" + textbox2.text + "' ";

in Textbox1 steht "08/01/2015" in Textbox2 "08/31/2015"

bekomme ich sofort den Kriterien Fehler.

24.08.2015 - 09:16 Uhr

Hallo an alle,

ich habe eine SQL Abfrage:


cmd.CommandText = "SELECT  SUM(gewicht.differenz) AS sum_Monat FROM gewicht Where st_Datum BETWEEN #08/01/2015# AND #08/31/2015# ";

diese läuft auch einwandfrei durch. Wenn ich jetzt einen formatierten Datetimepicker nutze der das selbe Format hat oder auch wenn ich 2 Textboxen mache mit diesem Format. Bekomme ich immer die Fehlermeldung :

Ein Ausnahmefehler des Typs "System.Data.OleDb.OleDbException" ist in System.Data.dll aufgetreten.
Zusätzliche Informationen: Datentypenkonflikt in Kriterienausdruck.

wo habe ich einen Denkfehler.

besten Dank

19.08.2015 - 19:27 Uhr

ich habe nach langen Ausprobieren und Graue Haare bekommen endlich die Lösung gefunden.
Warum auch immer ich konnte in der SQL Abfrage mache was ich wolte in Access selber lief alles sauber duch nur nicht in C#.

Ich habe jetzt die Entsprechende Tabelle komplett aus Access gelöscht und neu angelegt mit dem Demodaten jetzt läuft die Abfrage:


public void zum()
        {

            con.Open();
            DateTime dt = DateTime.Today.AddDays(-1);
            cmd.CommandText = ("SELECT gewicht.ge_id, gewicht.st_id, gewicht.st_Datum, gewicht.ge_gewicht, gewicht.differenz FROM gewicht WHERE (((gewicht.st_Datum)=Date()-2))");

            MessageBox.Show(cmd.CommandText);

            {
                OleDbDataReader de = cmd.ExecuteReader();
                while (de.Read())
                {

                    textBox3.Text = Convert.ToString(de["differenz"]);
                    textBox8.Text = Convert.ToString(de["ge_gewicht"]);
                    textBox9.Text = Convert.ToString(de["st_Datum"]);


                }
                de.Close();
                con.Close();

            }

        }

einwandfrei durch und liefert die geforderten ergebnisse

19.08.2015 - 19:10 Uhr

hier meine Original SQL Anweisung aus Access:


SELECT gewicht.ge_id, gewicht.st_id, gewicht.st_Datum, gewicht.ge_gewicht, gewicht.differenz
FROM gewicht
WHERE (((gewicht.st_Datum)=Date()-1));

die Liefert das selbe Ergbnis aks Fehler

19.08.2015 - 15:58 Uhr

habe ich gerade gemacht

19.08.2015 - 15:52 Uhr

sorry hatte ich einfach vergessen mache ich beim nächsten mal

19.08.2015 - 15:44 Uhr

Inatialisieren:



OleDbConnection con = new OleDbConnection();
OleDbCommand cmd = new OleDbCommand();

Form Load:

con.ConnectionString =
                           "Provider=Microsoft.ACE.OLEDB.12.0;" +
                           "Data Source=H:\\datenbanken\\fitness.accdb";
cmd.Connection = con;

dann:


 public void zum()
        {
            
            con.Open();
            DateTime dt = DateTime.Today.AddDays(-1);
            cmd.CommandText = ("SELECT gewicht.st_Datum, gewicht.ge_gewicht, gewicht.differen FROM gewicht (((gewicht.st_Datum)=Date()-2));");
            
            MessageBox.Show(cmd.CommandText);

            {
                OleDbDataReader de= cmd.ExecuteReader();
                while (de.Read())
                {
                   
                    textBox3.Text = Convert.ToString(de["differenz"]);
                    textBox8.Text = Convert.ToString(de["ge_gewicht"]);
                    textBox9.Text = Convert.ToString(de["st_Datum"]);
                  

                }
                de.Close();

            }

aufgerufen wird alles mit:


private void button2_Click(object sender, EventArgs e)
        {
            zum();
        }

19.08.2015 - 15:23 Uhr

leider liefert er mir auch dann den Fehler:

Ein Ausnahmefehler des Typs "System.Data.OleDb.OleDbException" ist in System.Data.dll aufgetreten.
Zusätzliche Informationen: Für mindestens einen erforderlichen Parameter wurde kein Wert angegeben.

ich habe es ja auch schon mit der original SQL Abfrage aus Access versucht die in Access einwandfrei durchläuft und das erforderliche Ergebnis bringt.

19.08.2015 - 14:39 Uhr

verwendetes Datenbanksystem: Access 2010

Hallo an alle ich habe ein Problem wenn ich meine Access DB nach einem Datum abfragen möchte:

als 1. habe ich mit:

DateTime dt = DateTime.Today.AddDays(-1);

eine variable angelegt die mir immer das Datum von gestern liefert, die Ausgabe in einer Textbox liefert mich auch das korrekte Datum zurück.

als 2. habe ich eine commandText erstellt:

cmd.CommandText = ("SELECT gewicht.st_Datum, gewicht.ge_gewicht, gewicht.differen FROM gewicht WHERE (((gewicht.st_Datum)= '" + dt + "'))");

als 3. habe ich zur Überprüfung eine

MessageBox.Show(cmd.CommandText);

ertellt um zu sehen ob alle Daten korrekt angegeben sind. Es wird mir auch alles korrekt angezeigt.

auch eine in Access erstellte SQL Querrie bringt keinen erfolg:

SELECT gewicht.st_Datum, gewicht.ge_gewicht, gewicht.differenz
FROM gewicht
WHERE (((gewicht.st_Datum)=Date()-2));

es wird mir jedesmal folgende Meldung zurück geliefert:

Fehlermeldung:
Ein Ausnahmefehler des Typs "System.Data.OleDb.OleDbException" ist in System.Data.dll aufgetreten.
Zusätzliche Informationen: Für mindestens einen erforderlichen Parameter wurde kein Wert angegeben.

Wo ist meine Fehler? Bitte um eure Hilfe

Michael

17.08.2015 - 21:27 Uhr

ich hatte es mir folgendermaßen gedacht ich habe eine Tabelle mit folgenden Spalten:

Datum Gewicht Differenz;

ich trage dort jeden Tag Daten ein nun möchte ich wenn ich einen neuen Datensatz eintrage das die Spalte Differenz berechnet wird aus gestrigen und heutigen Gewicht und das dann nur das Feld Differenz für den heutigen Tage geupdatet wird.

wenn ich das per Hand mache klappt es ja auch wunderbar nur wäre es schön wenn es automatisch gehen würde da ja die entsprechenden Datensätze vorhanden sind.

17.08.2015 - 20:58 Uhr

das Daten auslesen klappt ja auch sehr gut ich kann damit eine Datagrid füllen allerdings klappt es nicht das ich im Hintergrund die Daten von gestern (16.08. Gewicht 95) von heute (17.08. 92 ) abziehen kann.

Ich stehe da voll auf dem Schlauch.

17.08.2015 - 19:58 Uhr

verwendetes Datenbanksystem: Access

ich hole mir mit

OleDbDataAdapter da = new OleDbDataAdapter("select datum, gewicht from gewicht,con);

mir alle entsprechenden Daten aus Access nun möchte ich das soweit realisieren das immer der Datensatz berechnet wird:

  1. Datensatz datum = 16.08.2015 Gewicht = 95
  2. Datensatz datum = 17.08.2015 Gewicht = 92

dann soll in einer Textbox die Differenz errechnet werden = -3 dieses wird dann in eine Zelle des aktuellen Datensatz zurückgeschrieben.

Ich würde mich über Anregungen freuen

Michael

17.08.2015 - 15:28 Uhr

da arbeite ich gerade dran aber ich bin dankbar das ich einen Ansatz habe an dem ich weiterarbeiten kann ich hoffe as ich das weitere durch testen selber hinbekomme.
Wie heißt es so schön Learning by doing.

17.08.2015 - 15:14 Uhr

Vielen Dank das war genau as richtige

Ihr seid die Besten

Michael

17.08.2015 - 14:49 Uhr

Genau das meine ich bis jetzt hatte ich das so versucht

int nDif = 0;

vGeburtstag = Convert.ToDateTime(vGeburtstag);
nDif = DateAndTime.DateDiff("yyyy", vGeburtstag, DateAndTime.Now());
if (DateAndTime.Month(vGeburtstag) > DateAndTime.Month(DateAndTime.Now)) {
	nDif = nDif - 1;
} else if (DateAndTime.Month(vGeburtstag) == DateAndTime.Month(DateAndTime.Now)) {
	if (DateAndTime.Day(vGeburtstag) > DateAndTime.Day(DateAndTime.Now))
		nDif = nDif - 1;
}

Alter = nDif;

und als Ausgabe:

System.DateTime Geburtsdatum = default(System.DateTime);
Geburtsdatum = DateTimePicker1.Text;
TextBox2.Text = Alter(DateTimePicker1.Text);

Das habe ich noch von meinen alten VB Zeiten im Hinterkopf gehabt und versucht nach Csharp umzubauen

17.08.2015 - 14:40 Uhr

das ich einfach keinen richtigen Ansatz finde diese Problematik zu lösen, ich muß dazu sagen das ich noch relativ neu bin in chsarp

17.08.2015 - 14:21 Uhr

Hallo an alle,

ich habe da ein Problem wo ich auf dem Schlauch stehe.

ich habe einen DateTimePicker und eine Textbox, nun möchte ich über das Event
Value.Change des mir ausgehend vom aktuellen Datum(Jahr) das alter in Jahre in der Textbox ausgegeben wird ich stehe da irgentwie voll au dem Schlauch.

Ich habe das Forum nun auch schon stundenlang durchsucht.

Besen Dank für eure Hilfe.

Michael