Fragensteller
Bekomme keine Stringausgabe

Allgemeine Diskussion
-
Hallo,
iwie bekomme ich keine ausgabe im datagridview hin :/
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace Zinsberechnung_mit_Forms { public partial class Form1 : Form { double Kap = 0; double zin = 0; double kapital = 0; double zinssatz = 0; double zinsen = 0; double zwischenergebnis = 0; double jahr = 0; double kapital1 = 0; double tilgung = 0; double monat = 0; double rate = 0; public Form1() { InitializeComponent(); this.Text = "Darlehnsrechner"; } private void button1_Click(object sender, EventArgs e) { kapital = Convert.ToDouble(textBox1.Text); jahr = Convert.ToDouble(textBox2.Text); zinssatz = Convert.ToDouble(textBox3.Text); tilgung = Convert.ToDouble(textBox4.Text); kapital1 = kapital; //if ((radioButton1.Checked == false) && (radioButton2.Checked == false)) MessageBox.Show("Bitte eine Darlehnsart Auswaelen!"); if (radioButton1.Checked == true) { for (int i1 = 1; i1 <= jahr; i1++) { for (int i = 1; i <= 12; i++) { if ((kapital != kapital1) && (i == 1)) kapital = kapital + tilgung; if (i >= 2) kapital = kapital - tilgung; zwischenergebnis = kapital * zinssatz / (100 * 12); if (i1 == 1) monat = i; if (i1 == 2) monat = i + 12; if (i1 > 2) monat = i + (12 * i1) - 12; rate = zinsen + tilgung; zinsen = 0; tilgung = tilgung - zinsen; this.Controls.Add(DataGridView); DataGridView.ColumnCount = 6; DataGridView.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.DisplayedCellsExceptHeaders; DataGridView.SelectionMode = DataGridViewSelectionMode.FullRowSelect; DataGridView.MultiSelect = false; string[] row0 = { monat.ToString(), kapital1.ToString(), zwischenergebnis.ToString(), tilgung.ToString(), rate.ToString(), kapital.ToString() }; DataGridView.Rows.Add(row0); } kapital = kapital + zinsen; Kap = Convert.ToInt32(kapital * 100); kapital = (int)Kap / 100; zin = Convert.ToInt32(zinsen * 100); zinsen = (int)zin / 100; } } if (radioButton2.Checked == true) { for (int i1 = 1; i1 <= jahr; i1++) { for (int i = 1; i <= 12; i++) { if ((kapital != kapital1) && (i == 1)) kapital = kapital - tilgung; if (i >= 2) kapital = kapital - tilgung; zwischenergebnis = kapital * zinssatz / (100 * 12); if (i1 == 1) monat = i; if (i1 == 2) monat = i + 12; if (i1 > 2) monat = i + (12 * i1) - 12; rate = zinsen + tilgung; zinsen = 0; this.Controls.Add(DataGridView); DataGridView.ColumnCount = 6; DataGridView.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.DisplayedCellsExceptHeaders; DataGridView.SelectionMode = DataGridViewSelectionMode.FullRowSelect; DataGridView.MultiSelect = false; string[] row0 = { monat.ToString(), kapital1.ToString(), zwischenergebnis.ToString(), tilgung.ToString(), rate.ToString(), kapital.ToString() }; DataGridView.Rows.Add(row0); } kapital = kapital + zinsen; Kap = Convert.ToInt32(kapital * 100); kapital = (int)Kap / 100; zin = Convert.ToInt32(zinsen * 100); zinsen = (int)zin / 100; } } } } }
Gruß Floland- Typ geändert Ionut DumaModerator Montag, 18. März 2013 15:00 Keine Ruckmeldung des Fragenstellender
Alle Antworten
-
Hi,
so ganz ohne Datenquelle würde ich das nicht machen. Ob man bei WinForms für das DataGridView zwingend eine DataSource benötigt, weiß ich nicht. Aber Sinn macht es allemal.
Anstatt also dem DataGridView selbst die Zeilen hinzuzufügen, machst Du das sinnvollerweise in einer DataTable oder auch einer List<EigeneKlasse> bzw. BindingList<T>, der Du dann die einzelnen Zeilen als Objekte gibst. Die DataTable oder List/BindingList kannst Du dem DataGridView dann als DataSource zuweisen.
http://msdn.microsoft.com/de-de/library/fbk67b6z.aspx
http://tech.pro/tutorial/776/csharp-tutorial-binding-a-datagridview-to-a-collection
Gruß, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET
http://www.asp-solutions.de/ - Consulting, Development
http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community -
****************************************************************************************************************
Dieser Thread wurde mangels weiterer Beteiligung des Fragestellenden ohne bestätigte Lösung abgeschlossen.
Neue Rückfragen oder Ergänzungen zu diesem Thread bleiben weiterhin möglich.
****************************************************************************************************************