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
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
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
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?
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.
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.
Hallo,
das habe ich jetzt gemacht aber leider brachte das auch keinen Erfolg, es bleiben immer noch Balken
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-
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;
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
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.
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
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
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
sorry hatte ich einfach vergessen mache ich beim nächsten mal
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();
}
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.
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
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.
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.
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:
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
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.
Vielen Dank das war genau as richtige
Ihr seid die Besten
Michael
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
das ich einfach keinen richtigen Ansatz finde diese Problematik zu lösen, ich muß dazu sagen das ich noch relativ neu bin in chsarp
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