Dataset updaten met Access

Status
Niet open voor verdere reacties.

GhastlyMIB

Gebruiker
Lid geworden
5 jun 2007
Berichten
368
Hey,

als ik een dataset probeer op te slaan (in Access), krijg ik de volgende melding:
Code:
Voor de methode OleDbCommand.Prepare is vereist dat het type van alle parameters expliciet is ingesteld.

Nu probeer ik alleen 1 item te wijzigen. Alleen maar de notitie. Aan de andere velden kom ik niet. Ik heb geprobeerd de notitie te laten staan en een andere te bewerken, maar dan krijg ik deze melding ook.
Als ik niks bijwerk en dan opsla, dan werkt het wel. Maar er worden dan geen acties ondernomen...

Code:
DataRow dr = ((NoteListItem)lstNotes.SelectedItem).Item;
dr["Note"] = txtNote.Text;
_NotesSqlInfo.SaveDataSet();

Heeft iemand dit eerder gehad? En hoe los ik dit op?


Mathijs
 
Is de dataset direct gebind aan de database ?
Heb je iets geprobeerd als :
dataset.AcceptChanges?
 
Ja,

in de methode SaveDataSet() zit:
cAdapter.Update(cDataset, cTabelNaam);
cDataset.Tables[cTabelNaam].AcceptChanges();

Maar nu ben ik er achter gekomen, als ik het direct probeer te doen met een query, dan werkt het niet met de ID.

Code:
int id = 2;
Extended.SQLQuery query = new Extended.SQLQuery("UPDATE [tbl_notes] SET [NoteText]=@NOTETEXT WHERE [ID]=@UniqueNumberID"); 
query.Parameters.AddWithValue("@UniqueNumberID", id);
query.Parameters.AddWithValue("@NOTETEXT", txtNote.Text);

Dit werkt niet, de functie wordt wel gewoon uitgevoerd zonder fouten, maar de database is niet bijgewerkt.:(

MAAR als ik dit doe:
Code:
Extended.SQLQuery query = new Extended.SQLQuery("UPDATE [tbl_notes] SET [NoteText]=@NOTETEXT WHERE [ID]=2"); 
query.Parameters.AddWithValue("@NOTETEXT", txtNote.Text);
dan werkt het wel:confused:

Hoe kan dit?
Help?

Gr,
Mathijs
 
Probeer eens id.ToString

query.Parameters.AddWithValue("@UniqueNumberID", id);
Extended.SQLQuery("UPDATE [tbl_notes] SET [NoteText]=@NOTETEXT WHERE [ID]=2");

Klopt het dat je in het ene UniqueNumberID gebruikt en in et andere ID ?
 
Laatst bewerkt:
Hmm, tis ongeveer opgelost...
Het lag niet aan de ID dat die niet opsloeg.. schijnbaar...
Het lag aan de DateTime.. (Had ik niet mee gegeven hier in de code)
Dat type gegeven kan ik dus niet opslaan in de database.

Maar het probleem met de dataset kan ik dus niet oplossen.
Met de query kon ik
Code:
query = new Extended.SQLQuery("UPDATE [tbl_notes] SET [NoteText]=@NOTETEXT, [ModifiedBy]=@MODIFIEDBY, [B][DateAndTime]=NOW()[/B] WHERE [ID]=@ID");
doen. Maar die NOW() functie kan niet met een dataset...

Heb je hier toevallig een oplossing voor?

Bedankt,
Mathijs
 
ID = autonummering

en de datum en tijd = Datum/tijd

Maar de ID functie werkt nu... Daar lag het niet aan.
Het lag aan de Datum en tijd. Weet je hier een oplossing voor?

Gr
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan