MySqlDataAdapter aktualisiert nur manchmal.

Die Programmiersprache C# und Programmierung im .NET Framework/Mono
londo
Beiträge: 17
Registriert: Sa Jul 12, 2014 1:59 pm
Wohnort: Magdeburg

Re: MySqlDataAdapter aktualisiert nur manchmal.

Beitrag von londo » Fr Aug 08, 2014 1:28 pm

so zurück vom kurzurlaub...hab mal schnell was gebaut...

Code: Alles auswählen

namespace testapp
{
    public partial class Form1 : Form
    {
        MySqlConnection MyCon;
        MySqlDataAdapter da;
        MySqlCommandBuilder cb;
        DataSet ds;

        private void Form1_Load(object sender, EventArgs e)
        {
            LoadData();
        }

        private void LoadData()
        {
            try
            {
                MyCon = new MySqlConnection();
                MyCon.ConnectionString = "Server=localhost;Uid=root;Pwd=;Database=test";
                MyCon.Open();

                da = new MySqlDataAdapter("SELECT Uid, User, Email FROM testtable", MyCon);
                ds = new DataSet();

                da.Fill(ds, "TestTable");
                dataGridView1.DataSource = ds.Tables[0];
            }
            catch(Exception ex)
            {
                MessageBox.Show("Error\n" + ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

        private void btnUpdate_Click(object sender, EventArgs e)
        {
            try
            {
                cb = new MySqlCommandBuilder(da);
                da.Update(ds, "TestTable");
                MessageBox.Show("Updates ausgeführt", "Update", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            catch(Exception ex)
            {
                MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
funktioniert einwandfrei. schreiben ins datagrid wird sofort aktualisiert und in db geschrieben. vorhandene daten werden auch richtig geändert.
hab das jetzt paar mal gemacht und nie einen fehler bekommen oder fehlerhaftes schreiben in db
Der Anwender steht immer im Mittelpunkt – und da steht er jedem im Weg.

canlot
Beiträge: 393
Registriert: Di Mär 08, 2011 11:01 pm
Wohnort: NRW

Re: MySqlDataAdapter aktualisiert nur manchmal.

Beitrag von canlot » Fr Aug 08, 2014 2:14 pm

londo hat geschrieben:funktioniert einwandfrei. schreiben ins datagrid wird sofort aktualisiert und in db geschrieben. vorhandene daten werden auch richtig geändert.
hab das jetzt paar mal gemacht und nie einen fehler bekommen oder fehlerhaftes schreiben in db
Jo mit einem Button der Updates danach ausführt funktioniert es bei mir auch astrein.
Ich gehe davon aus das die Daten erstmal von Datagridview validiert oder ähnliches werden und das mit einem Thread nebenbei, und wenn man Daten sofort zum Adapter schickt hat er noch die Daten nicht validiert und deshalb werden keine neuen Daten hinzugefügt.
Ich habe auch versucht den Button im Ereignis CellEndEdit manuell auszulösen was auch klappt aber weil da alles sequentiell nach einander abgearbeitet wird entsteht keine Pause und die neue Zeile/Zelle also die neuen Daten werden nicht angenommen und die alten Daten werden weitergegeben.

Das Team von mycsharp war gar nicht so nett: http://www.mycsharp.de/wbb2/thread.php?threadid=112426

edit: also ich habe grade ausprobiert und mit dem Ereignis "DataGridView1CellValidated" wird alles validiert wenn das Fester geschlossen wird oder ein Button angeklickt wird, damit ist mein Problem quasi gelöst, der Ereignis wird auch ausgelöst wenn man in eine Zelle reingeschrieben hat aber die Daten sind da noch nicht von datagridview übernommen worden.
Unwissenheit ist ein Segen

londo
Beiträge: 17
Registriert: Sa Jul 12, 2014 1:59 pm
Wohnort: Magdeburg

Re: MySqlDataAdapter aktualisiert nur manchmal.

Beitrag von londo » Fr Aug 08, 2014 5:55 pm

wenn du kein button event nutzen willst, sondern z.b. "Enter-Taste" oder Tab oder sonstwas, dann

in den form eigenschaften "KeyPreview" = true

Code: Alles auswählen

        //wird ausgelöst beim lösen der Entertaste, oder anderer definierter Tasten
        private void dataGridView_KeyUp(object sender, KeyEventArgs e)
        {
            if(e.KeyCode == Keys.Enter)
            {
                Update();
            }
        }
in zelle klicken, wert ändern wie du willst und enter drücken
hier is gut, gehst in erste zelle und tabst bis zur letzten zelle durch, nach bearbeiten der letzten zelle halt enter drücken und alle zellen werden geupdatet

nur noch so am rande;-)

ps: Update ist function aus btnUpdate

Code: Alles auswählen

        private void Update()
        {
            try
            {
                cb = new MySqlCommandBuilder(da);
                da.Update(ds, "TestTable");
                MessageBox.Show("Updates ausgeführt", "Update", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
nur noch zur info
Der Anwender steht immer im Mittelpunkt – und da steht er jedem im Weg.

canlot
Beiträge: 393
Registriert: Di Mär 08, 2011 11:01 pm
Wohnort: NRW

Re: MySqlDataAdapter aktualisiert nur manchmal.

Beitrag von canlot » Fr Aug 15, 2014 1:06 pm

Ja ich habe es mit dem Ereignis "DataGridView1SelectionChanged" erreicht.
Keiner Ahnung warum es funktioniert :D
Unwissenheit ist ein Segen

londo
Beiträge: 17
Registriert: Sa Jul 12, 2014 1:59 pm
Wohnort: Magdeburg

Re: MySqlDataAdapter aktualisiert nur manchmal.

Beitrag von londo » Fr Aug 15, 2014 2:36 pm

weißt doch gibt immer verschiedene wege nach rom;-)
Der Anwender steht immer im Mittelpunkt – und da steht er jedem im Weg.

Benutzeravatar
cloidnerux
Moderator
Beiträge: 3123
Registriert: Fr Sep 26, 2008 4:37 pm
Wohnort: Ram (Gibts wirklich)

Re: MySqlDataAdapter aktualisiert nur manchmal.

Beitrag von cloidnerux » Fr Aug 15, 2014 2:58 pm

weißt doch gibt immer verschiedene wege nach rom;-)
Nur das esbei WinForm *Views mindestens 4 Wege gibt, die nach Rom führen sollen, man aber den fünften Nehmen muss, auf dem es nach London gehen soll, es aber der einzig funktionierende ist.
Redundanz macht wiederholen unnötig.
quod erat expectandum

nouseforname
Beiträge: 236
Registriert: Do Feb 10, 2011 6:31 pm

Re: MySqlDataAdapter aktualisiert nur manchmal.

Beitrag von nouseforname » Fr Aug 15, 2014 3:10 pm

Das liegt aber eindeutig an Microsoft... Wie sag ich immer...der IE ist einer der besten Browser......... für den Download des FireFox ;)

Antworten