Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

[VB.NET] Update query in Access

Pagina: 1
Acties:
  • 668 views sinds 30-01-2008
  • Reageer

  • rolands
  • Registratie: November 2003
  • Laatst online: 05-12-2023
Ik probeer data van een formulier op te slaan in een Access Database. Nu ben ik zover gekomen dat ik de code heb, die er op zich goed uit ziet, maar niet goed gaat.

De code die ik gebruik:

Visual Basic .NET:
1
2
3
4
5
6
7
8
9
10
11
    Dim myConnection As OleDbConnection
    Dim myCommand As OleDbCommand
    Dim ra As Integer
    Private Sub SaveButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles SaveButton.Click
        myConnection = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source='" & strDataSource & "';")
        myConnection.Open()
        myCommand = New OleDbCommand("Update Templates Set ADDomain=(Me.ADDomainTextBox) where TemplateName=(TemplateCombobox.SelectedItem) ", myConnection)
        ra = myCommand.ExecuteNonQuery()
        MessageBox.Show("Records affected" & ra)
        myConnection.Close()
    End Sub


Ik krijg een foutmelding op: ra = myCommand.ExecuteNonQuery()

Namelijk: Waarden voor een of meer vereiste parameters ontbreken.

Maar ik vraag me dan af welke vereiste parameter ik over het hoofd zie.

Wellicht kan iemand helpen.

Alvast bedankt,
Roland

  • whoami
  • Registratie: December 2000
  • Laatst online: 29-11 22:54
Die foutmelding krijg je als je query niet goed is, en die is niet goed.
Wat doet die 'me.Addomain.TextBox' in je query ?
De query die je doorstuurt, is gewoon een string. Zoals hij daar staat, ga je dus niet de inhoud van die textbox aan je query gaan toekennen. Die haakjes moeten daar ook niet staan.

Dit is eigenlijk makkelijk op te lossen, door eens een ADO.NET tutorial door te nemen; kijk eens naar parametrized queries, en kom op het volgende:
code:
1
2
3
4
string query = "UPDATE templates SET domain = @p_domain WHERE ... ";
OleDbCommand cmd = ...

cmd.Parameters.Add (.... );

https://fgheysels.github.io/


  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 15:10

Creepy

Tactical Espionage Splatterer

En wat zie je als je je query afdrukt? Ik kan me niet voorstellen dat je query weet wat (TemplateCombobox.SelectedItem) is aangezien je geen query parameters gebruikt en ook een string concatenation (google eens als je die term niet kent).

Edit: snelle whoami

[ Voor 4% gewijzigd door Creepy op 11-11-2007 21:25 ]

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 16:23

gorgi_19

Kruimeltjes zijn weer op :9

Buiten dat wil je de objecten niet in je query stoppen, maar respectievelijk de property-waarden Text en Value.

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • rolands
  • Registratie: November 2003
  • Laatst online: 05-12-2023
Euh, oke, dit zegt me inderdaad allemaal erg weinig. Het idee is dus om dat wat in een textbox staat te updaten naar een access database. Maar ik begrijp al wel dat ik er iets te makkelijk over denk en het toch lastiger is.

Dan ga ik verder met het bekijken van een ADO.Net tutorial.

Tnx,
Roland

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 16:23

gorgi_19

Kruimeltjes zijn weer op :9

rolands schreef op zondag 11 november 2007 @ 21:38:
Euh, oke, dit zegt me inderdaad allemaal erg weinig. Het idee is dus om dat wat in een textbox staat te updaten naar een access database. Maar ik begrijp al wel dat ik er iets te makkelijk over denk en het toch lastiger is.

Dan ga ik verder met het bekijken van een ADO.Net tutorial.

Tnx,
Roland
Mja... Ik denk dat je ook aandacht moet geven aan een VB.Net tutorial aangezien je ook de mist in gaat met het uitlezen van waarden en string bewerkingen :)

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • whoami
  • Registratie: December 2000
  • Laatst online: 29-11 22:54

https://fgheysels.github.io/


  • rolands
  • Registratie: November 2003
  • Laatst online: 05-12-2023
gorgi_19 schreef op zondag 11 november 2007 @ 21:33:
Buiten dat wil je de objecten niet in je query stoppen, maar respectievelijk de property-waarden Text en Value.
Ja oke, dus eerst van te voren zaken bepalen met:

Dim strDomain = Me.ADDomain.Textbox

en dan strDomain verder gebruik in de query?

  • whoami
  • Registratie: December 2000
  • Laatst online: 29-11 22:54
Nee.
Een TextBox is een object; en die heeft properties en methods. Eén van de properties van een Textbox is de 'Text' property, die je de inhoud van de tekstbox terug geeft.

Check de output eens van de onderstaande statements (er van uitgaande dat je een textbox hebt die ADDomainTextBox noemt).
code:
1
2
Console.WriteLine (ADDomainTextBox);
Console.WriteLine (ADDomainTextBox.Text);

[ Voor 37% gewijzigd door whoami op 11-11-2007 21:41 ]

https://fgheysels.github.io/


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 16:23

gorgi_19

Kruimeltjes zijn weer op :9

rolands schreef op zondag 11 november 2007 @ 21:39:
[...]


Ja oke, dus eerst van te voren zaken bepalen met:

Dim strDomain = Me.ADDomain.Textbox

en dan strDomain verder gebruik in de query?
Je wilt niet de Textbox ZELF hebben, maar de propertywaarde text van de textbox. Als iemand de kleur vraagt van je voertuig, geef je toch ook niet een auto?

[ Voor 10% gewijzigd door gorgi_19 op 11-11-2007 21:41 ]

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • rolands
  • Registratie: November 2003
  • Laatst online: 05-12-2023
whoami schreef op zondag 11 november 2007 @ 21:40:
Nee.
Een TextBox is een object; en die heeft properties en methods. Eén van de properties van een Textbox is de 'Text' property, die je de inhoud van de tekstbox terug geeft.

Check de output eens van de onderstaande statements (er van uitgaande dat je een textbox hebt die ADDomainTextBox noemt).
code:
1
2
Console.WriteLine (ADDomainTextBox);
Console.WriteLine (ADDomainTextBox.Text);
Ja oke, dat snap ik inderdaad. Ik zit ondertussen je link door te nemen over de queries en zie nu ongeveer wat de bedoeling is. Ik zal er eens even mee aan de gang gaan om wat in elkaar te zetten.

Tnx,
Roland
Pagina: 1