DataGridView - Ausgewählte Reihe rausfinden

schmitti81

Mitglied
Hi,

ich habe ein DataGridView, in dem Daten aus einer MySQL-Datenbank angezeigt werden.
Jetzt versuche ich Daten zu ändern und diese in der Datenbank zu speichern.
Mein Problem ist jetzt herauszufinden welche Zeile bzw. in welcher Zeile ein Eintrag geändert wurde.
Ich hab mal debuggt und gefunden, wie ich an den Wert komme, aber es geht nur im Debugmodus.
Wenn ich das Programm kompilieren will kommt immer folgende Fehlermeldung:
'System.Windows.Forms.DataGridViewSelectedCellCollection' does not contain a definition for 'items'.
Code:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using MySql.Data.MySqlClient;

namespace WindowsApplication10
{
    public partial class Form1 : Form
    {
        MySqlConnection oVerbindung;
        public Form1()
        {
            string sVerbindung = "server=localhost;uid=root;pwd=test;database=exam;";
            oVerbindung = new MySqlConnection(sVerbindung);

            InitializeComponent();
            string sql = "SELECT * FROM dfz_2007";
            DataSetFuellen(sql, oVerbindung);
        }
        private void DataSetFuellen(string sql, MySqlConnection oVerbindung)
        {
            MySqlDataAdapter da = new MySqlDataAdapter(sql, oVerbindung);
            DataTable data = new DataTable();
            da.Fill(data);
            dataGridView1.DataSource = data;
            dataGridView1.Refresh();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            DataGridViewTextBoxColumn id = new DataGridViewTextBoxColumn();
            id.HeaderText = "Id";
            id.DataPropertyName = "id";
            DataGridViewTextBoxColumn vorname = new DataGridViewTextBoxColumn();
            vorname.HeaderText = "Vorname";
            vorname.Name = "Test";
            vorname.DataPropertyName = "vorname";
            DataGridViewTextBoxColumn nachname = new DataGridViewTextBoxColumn();
            nachname.HeaderText = "Nachname";
            nachname.DataPropertyName = "nachname";
            DataGridViewTextBoxColumn geburtstag = new DataGridViewTextBoxColumn();
            geburtstag.HeaderText = "Geburtstag";
            geburtstag.DataPropertyName = "geburtstag";

            dataGridView1.Columns.Add(id);
            dataGridView1.Columns.Add(vorname);
            dataGridView1.Columns.Add(nachname);
            dataGridView1.Columns.Add(geburtstag);
            
        }

        private void button1_Click(object sender, EventArgs e)
        {
                       
            dataGridView1.EditMode = DataGridViewEditMode.EditOnEnter;
            int row = ((System.Windows.Forms.DataGridViewCell)(dataGridView1.SelectedCells.items[0])).RowIndex;

            string test = this.dataGridView1.Rows[2].Cells[1].Value.ToString();

            string sVerbindung = "server=localhost;uid=root;pwd=test;database=exam;";
            oVerbindung = new MySqlConnection(sVerbindung);

            string sql = "UPDATE dfz_2007 SET vorname='" + test + "' WHERE id='3'";
            DataSetFuellen(sql, oVerbindung);
            this.BindingContext[this.dataGridView1.DataSource].EndCurrentEdit();
            dataGridView1.Refresh();
            dataGridView1.Parent.Refresh();
        }

        private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {

        }
    }
}
Kann ich das irgendwie anders herausfinden?
Warum geht das wenn ich debugge aber nicht wenn ich es kompilieren will?

Bitte helft mir. DANKE!!

Gruß
schmitti81
 

Neue Beiträge

Zurück