Veröffentlicht 23. Oktober 20204 j Hallo alle zusammen. ich schreibe eine Art Zeitefassungstool.mit Start, Ende und Dauer Button. die Egebnisse solllen in die Tabellen von DataGridView eingetragen werden soweit funktioniert und der Code berechnet alles so wie sein soll und die Ergebnisse werden auch eingetragen aber nicht jewels in eine Zeile. was muss ich noch an Code ändern ? Danke für eure Antworten using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace Zeiterfassungstool { public partial class Form1 : Form { //Globale Variabeln public DateTime startTime; public DateTime endTime; //public table.Rows.[0]; public Form1() { InitializeComponent(); } private void textBox1_TextChanged(object sender, EventArgs e) { } //--------------------------------------START------------------------------------------------ private void btnStart_Click(object sender, EventArgs e) { this.startTime = DateTime.Now; textBox1.Text = startTime.ToString(); textBox2.Text = startTime.ToString(); int n = dataGridView1.Rows.Add(); dataGridView1.Rows[n].Cells[0].Value = textBox1.Text; //table.Rows.Add(newRow); //table.Rows[0]["Bemerkung"] = ""; } //--------------------------------------ENDE------------------------------------------------ private void btnEnde_Click(object sender, EventArgs e) { this.endTime = DateTime.Now; textBox3.Text = endTime.ToString(); int n = dataGridView1.Rows.Add(); dataGridView1.Rows[n].Cells[1].Value = textBox3.Text; TimeSpan dauer; dauer = endTime.Subtract(startTime); int m = dataGridView1.Rows.Add(); dataGridView1.Rows[m].Cells[2].Value = dauer.TotalHours.ToString("0.00");
23. Oktober 20204 j Bin zwar kein Experte aber du rufst jedes mal int n = dataGridView1.Rows.Add(); auf. Dadurch wird dann im GridView immer eine neue Zeile geholt. Diesen Call musst du nur einmal machen und dann diesen Zeilenwert zwischen speichern
23. Oktober 20204 j Autor wie wärst dann so als beispiel: DataGridViewRow row = (DataGridViewRow)yourDataGridView.Rows[0].Clone(); row.Cells[0].Value = "XYZ"; row.Cells[1].Value = 50.2; yourDataGridView.Rows.Add(row); ?
23. Oktober 20204 j Ich kenn mich mit dem .NET leider auch nicht aus. Aber so wie ich die Sache einschätze, sind die yourDataGridView.Rows.Add in der btnEnde_Click Methode komplett überflüssig, da die Row ja schon existiert. Oder habe ich da was falsch verstanden?
23. Oktober 20204 j Autor stimmt! eigentlich muss nur bei btnEnde_Click nur die Ngaben zum gleiche Existierende Zeile angegeben ,eingefügt werden.. weiss aber nicht wie genau soll das dann geschrieben werden Bearbeitet 23. Oktober 20204 j von MMazi
23. Oktober 20204 j Die Zeile hast du ja sobald du auf Start drückst, und die speicherst du ja auch. Dann musst du die Variable nur noch übergeben. Alternative: Da die Row die du brauchst ja immer die letzte im GridView ist (sieht zumindest da nach aus), gibt es bestimmt auch eine Methode diese zu erfragen.
23. Oktober 20204 j if (dataGridView1.Rows.Count>0) { var index = dataGridView1.Rows.GetLastRow(DataGridViewElementStates.None); dataGridView1.Rows[index].Cells[1].Value = endTime; } Selbsterklärend hoffe ich
23. Oktober 20204 j Autor ja stimmt die daten ist noch garnicht gebunden an einem daten bank , Danke für Antwort
23. Oktober 20204 j Muss, wenn es nur eine Übung sein soll, nicht mal eine DB sein. Kannst auch einfach ein DataSet aus einem JSON erstellen.
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.