Mam problem ?
DataGridView polaczona z DataSet. Chce aby po zmodywikowaniu w datagridview za pomoca dataset zapisac zmiany. Baz Mysql 4 i ODBC
Nie wiem dla czego mi to nie chce dzialac ??
fragment kodu (rozne proby)
da.UpdateCommand = new OdbcCommand("UPDATE test SET id = ?, testst = ? WHERE id = ?");
da.Update(dataSet1,"test");
Tu wskazuje, ze za malo parametrow.
pod dodaniu parametrow
OdbcParameter parameter;
parameter = da.UpdateCommand.Parameters.Add(new OdbcParameter("@id", SqlDbType.Int));
parameter.SourceColumn = "id";
parameter.SourceVersion = DataRowVersion.Current;
i zmianie
da.UpdateCommand = new OdbcCommand("UPDATE test SET id = @id, testst = @testst WHERE id = @id");
wysypuje sie z pamiecia
ERROR [HY001] [MySQL][ODBC 3.51 Driver][mysqld-4.1.11-nt]Memory allocation error
albo nie przyjmuje parametrow.
ERROR [42000] [MySQL][ODBC 3.51 Driver][mysqld-4.1.11-nt]You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'id = @id, testst= @testst WHERE id=@id' at line 1
jakie sa sugestje (zazwyczaj recznie
updateowalem tabele - ale skoro jest to ...)
------------------------------------------------------------- dopisane I
Byla literowka co jednak dalej daje blad, cos mam zly dzien ...
Concurrency violation: the UpdateCommand affected 0 of the expected 1 records.
------------------------------------------------------------- dopisane II
BARDZO BARDZO zly dzien :)
to jest OK, przepraszam za zasmiecanie forum (ale moze sa jakies uwagi ... mile widziane bo dzis nieczego nie dostrzegam)
da.UpdateCommand = new OdbcCommand("UPDATE test SET id = ?, testst = ? WHERE id = ?");
OdbcParameter parameter;
parameter = da.UpdateCommand.Parameters.Add(new OdbcParameter("@id", SqlDbType.Int));
parameter.SourceColumn = "id";
parameter = da.UpdateCommand.Parameters.Add(new OdbcParameter("@testst", SqlDbType.VarChar));
parameter.SourceColumn = "testst";
da.Update(dataSet1,"test");