Visualizzazione dei risultati da 1 a 9 su 9
  1. #1

    Problema vb.net e OleDb

    Ciao a tutti....ho un piccolo problemino con il vb.net...vi posto il codice

    codice:
            Dim nom_e As String
            Dim marc_a As String
            Dim prezz_o As String
            Dim sezio_ne As String
            Dim sit_o As String
            Dim des_cri As String
    
            nom_e = nome.Text
            marc_a = marca.Text
            prezz_o = prezzo.Text
            sezio_ne = sezione.Text
            sit_o = sito.Text
            des_cri = descri.Text
    
            Dim dbCon As OleDbConnection
            Dim dbCmd As OleDbCommand
            Dim str As String
            Dim a As Integer
            dbCon = New OleDbConnection("Provider=Microsoft.JET.OLEDB.4.0; Data Source=" + My.Application.Info.DirectoryPath + "\db.mdb")
            dbCon.Open()
            str = "insert into obj values('','" & nom_e & "','" & marc_a & "','" & des_cri & "','" & prezz_o & "',''" & ",'" & sezio_ne & "','" & sit_o & "')"
            dbCmd = New OleDbCommand(str, dbCon)
            dbCmd.ExecuteNonQuery()
    Mi restituisce "Tipi di dati non corrispondenti nell'espressione criterio." su dbCmd.ExecuteNonQuery() .
    potete aiutarmi?


    grazie, simone
    Hack is not a crime!

  2. #2
    Per come hai scritto la query, il provider si aspetta che i tipi del campo all'interno della tabella siano tutti STRING.
    Il che è molto improbabile visto che hai anche una variabile Prezz_o.

    Se usassi le query parametrizzate questi problemi non li avresti più.

    Per il momento puoi risolvere togliendo gli apici per i valori di tipo integer,usando gli apici per i valori string e usando # per i valori DateTime(visto che parliamo di Access).

    poi valuta l'eventualità di usare le stringhe parametrizzate

    Facci sapere....
    Ciao

  3. #3
    Scusa la domanda sciocca...
    Cosa sono le query e le stringhe parametrizzate?


    comunque grazie per la risposta...
    Hack is not a crime!

  4. #4
    allora ho tolto gli apici ai valori integer e adesso mi restituisce questo "Errore di sintassi nell'istruzione INSERT INTO."

    Why?
    Hack is not a crime!

  5. #5
    Innanzitutto mi scuso per questo errore
    >poi valuta l'eventualità di usare le stringhe parametrizzate
    intendevo dire:
    valuta l'eventualità di usare le query parametrizzate.

    L'istruzione query è quella che tu assegni alla variabile str....ed è proprio quella che ti chiedo di mostrare per capire dove hai ancora sbagliato nella concatenazione di stringhe per la creazione della query.

    Se possibile mostra anche il nome dei campi della tabella nel Db,il nome della tabella e, se proprio vuoi strafare.. ..anche il tipo dei campi.

    Facci sapere...
    Ciao

  6. #6
    allora la tabella si chiama "obj" i campi sono: "id -> contatore"

    "nome -> testo"
    "marca -> testo"
    "descrizione -> testo"
    "prezzo -> valuta"
    "img -> testo"
    "sezione -> testo"
    "sitoweb -> testo"

    poi...
    ed è proprio quella che ti chiedo di mostrare per capire dove hai ancora sbagliato nella concatenazione di stringhe per la creazione della query.
    Non ho capito cosa vuoi intendere....

    grazie, simone
    Hack is not a crime!

  7. #7
    >Non ho capito cosa vuoi intendere....
    Lascia perdere.....

    sostituisce al tuo codice questa riga:
    str="INSERT INTO Obj(nome,marca,descrizione,prezzo,img,sezione,sito web) VALUES('" & nom_e & "','" & marc_a & "','" & des_cri & "'," & prezz_o & ",'','" & sezio_ne & "','" & sit_o & "')"

    Una Query parametrizzata sarebbe stata semplicemente:
    str="INSERT INTO Obj(nome,marca,descrizione,prezzo,img,sezione,sito web) VALUES(?,?,?,?,?,?,?)"

    Poi avresti dovuto però impostare i parametri e passarli al command.
    Se cerchi in rete query parametriche o parametrizzate che dir si voglia.....trovi un sacco di materiale a riguardo.

    se hai bisogno più info...facci sapere

    Ciao.

  8. #8
    ho fatto come dici tu ma mi restituisce questo...

    Il numero dei valori nella query non corrisponde a quello dei campi di destinazione.

    come mai? ho provato ad aggiungere il campo id ma, mi rida lo stesso errore di prima...

    hai qualche soluzione...tra un po lo rompo il programma

    grazie di tutto, simone

    Hack is not a crime!

  9. #9
    Jeremy sei mitico!!! Funziona!!!
    grazie 1000.
    avevo sbagliato a scrivere io...


    grazie mille

    spero che ci risentiremo...ciaooo

    Hack is not a crime!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.