Übergebener Datatable enthält kein Daten wegen autoinincrement


Babbsagg

Grünschnabel
Ich hab hier ne Klasse mit der ich mir n Datatable aus ner SQL-DB erstelle.

Code:
namespace WindowsFormsApplication1
{
    class Mitarbeiterdb{

        static MySqlConnection con = new MySqlConnection("****");
        MySqlDataAdapter da = new MySqlDataAdapter("SELECT * FROM mitarbeiter.mitarbeiter", con);
        DataTable tb1 = new DataTable();

            public void createmitarbeiterdb(){

                //tb1.Columns[0].AutoIncrement = true;
                //tb1.Columns[0].AutoIncrementSeed = -1;
                //tb1.Columns[0].AutoIncrementStep = -1;

                da.Fill(tb1);
            }
            public DataTable gettable(){
                return tb1;
            }
      }
}

in der Form lass ich mir den table dann so übergeben:
Code:
 public partial class Form1 : Form
    {
        Mitarbeiterdb db1 = new Mitarbeiterdb();

        private void Arbeitszeiterfassung_Load(object sender, EventArgs e)
        {
            db1.createmitarbeiterdb();
            dataGridView1.DataSource = db1.gettable();
        }

Jetzt hab ich das Problem, dass in der ersten Spalte des tables ne ID als Primärschlüssel existiert, die ich brauche weil ich noch Methoden zum Löschen und Hinzufügen schreiben will.

Wenn ich aber jetzt vorm Befüllen "tb1.Columns[0].AutoIncrement = true" setzte oder den incrementspeed/step ändere, dann bleibt mein DatagridView leer. Irgendwas muss da schieflaufen bei der Übergabe und ich seh nicht was.
 

Fasibio

Mitglied
hi,
ich kann leider dein geschriebenes nicht ganz nachvollziehen.
Da du aber in der tabelle buttons einfügen möchtest, habe ich vielleicht eine alternative Lösung für dich.
So wie du es immoment machst musst du ja immer anhand der id wieder den richtigen Datensatz herausfinden.

Um dieses Problem zu umgehen habe ich das mal so gelöst :

Ich habe die Daten von der Datenbank in einer Klassenstruktur gespeichert.
Nun habe ich eine klasse erstellt die von DataGridViewRow erbt.Nun habe ich dem Datagridview diese hinzugefügt. Wird nun auf eine spalte (eine zelle einer spalte) geklickt kann das abgefangen werden und die erbende Klasse sich drum kümmern. Denn diese hat ja schon alle informationen eines Datensatzes, und somit auch die id.
Hoffe du verstehst was ich dir mitteilen wollte .

Gruß
Fasbio
 

Neue Beiträge

Forum-Statistiken

Themen
272.360
Beiträge
1.558.623
Mitglieder
187.833
Neuestes Mitglied
SirrDansen