[C#] DataGridView co robie nie tak ?

0

Witam Poczytałem co nieco o ADO.NET i próbuję zrobić datagridview obsługujący dowolną baze o tyle o ile mam zrobione wyświetlanie i raporty o tyle nie mam edycji dodawania i update ok jest MySQL Connector i mozna podłączyć go do datagridview, ale po tym zabiegu strasznie obniża się szybkość działania probramu oraz wielkość zajmowanych zasobów, więc próbuję zrobić to ręcznie ( bo też i lubie trochę podłubać) , ale nie działa to tak jak powinno ok więc testowa baza to projekt nazwa tabeli to stopnie... właściwości to Id_stopnie int(5) auto_increment, nazwa varchar(40) not null, pimary key(id_stopnie) po włączeniu mojej formu dodawanie działa, tzn. dodaje nic :) oczywiście autoinkrementuje, ale nazwa to null edycja i usuwanie tez nie dziala. Help co zrobić poproszę o poprawki lub kod żeby podączyć do datagridview coś co samo będzie insertowało updetowało itd. mój tymczawsowy kod to

            dgv.AutoGenerateColumns = true;

            BindingSource bsrc = new BindingSource();
            MySqlConnectionStringBuilder mcb = new MySqlConnectionStringBuilder();

            mcb.Server = "127.0.0.1";
            mcb.Database = "projekt";

            mcb.UserID = "root";
            mcb.Password = label1.Text;

            MySqlConnection northwindConnection = new MySqlConnection(mcb.ConnectionString);
            northwindConnection.Open();

            MySqlCommand selectCommand = northwindConnection.CreateCommand();
            selectCommand.CommandText = "SELECT * FROM stopnie";

            MySqlCommand updateCommand = northwindConnection.CreateCommand();
            updateCommand.CommandText =
                "UPDATE stopnie SET Nazwa=@Nazwa where Id_stopien=@Id_stopien";
            updateCommand.Parameters.Add(
                new MySqlParameter("@Id_stopien",MySqlDbType.Int32,5,"Id_stopien"));
            updateCommand.Parameters.Add(
                new MySqlParameter("@Nazwa", MySqlDbType.VarChar, 40, "Nazwa"));

            MySqlCommand deleteCommand = northwindConnection.CreateCommand();
            deleteCommand.CommandText = "DELETE stopnie WHERE Id_stopien=@Id_stopien";
            deleteCommand.Parameters.Add(
                new MySqlParameter("@Id_stopien", MySqlDbType.Int32, 5, "Id_stopien"));

            MySqlCommand insertCommand = northwindConnection.CreateCommand();
            insertCommand.CommandText = "INSERT INTO stopnie(Nazwa) " +
                "VALUES(@Nazwa)";
            insertCommand.Parameters.Add(
                new MySqlParameter("@Id_stopien", MySqlDbType.Int32, 5, "Id_stopien"));
            insertCommand.Parameters.Add(
                new MySqlParameter("@Nazwa", MySqlDbType.VarChar, 40, "Nazwa"));

            DataSet ds = new DataSet();
            MySqlDataAdapter adapter = new MySqlDataAdapter(selectCommand);
            adapter.UpdateCommand = updateCommand;
            adapter.DeleteCommand = deleteCommand;
            adapter.InsertCommand = insertCommand;
            adapter.Fill(ds);

            DataTable table = ds.Tables[0];
            //table.Locale = System.Globalization.CultureInfo.InvariantCulture;

            DataRow nowy = table.NewRow();
            nowy["Nazwa"] = "dodany";
            table.Rows.Add(nowy);

            adapter.Update(table);

            bsrc.DataSource = table;
            dgv.DataSource = bsrc;

            // Automatycznie dopasuj rozmiar do widocznych komórek
            dgv.AutoSizeRowsMode =
                DataGridViewAutoSizeRowsMode.DisplayedCellsExceptHeaders;

jak widac datagridview do dgv plz. help jade juz dalej z moja aplikacja i ogólnie już oprawa zrobiona, ale z tym stoje, a da to po prostu olbżymie korzyści w tym co zamierzam zrobić. PLZ pomocy

PS. i broń was panie boże od porad idz na google :) pokażcie, że i na polskim forum można znaleŹć pomoc

PS2. Jeśli ktoś kumaty może czasami coś pomóc np przez skyp,gg lub coś takiego prosze pisać na priv, nie będę nikogo spamować,ale przyda się na przyszłość :)

0

Spróbuj wywołać update z paramterami ds, "nazwa tabeli".
Dodatkowo, być może masz źle zrobione insert/update commands?
Spróbuj commandbuildera:
MySqlCommandBuilder myCommandBuilder3 = new MySqlCommandBuilder(adapter);

0

Kolejnośc parametrów jest nieprawidłowa

1 użytkowników online, w tym zalogowanych: 0, gości: 1