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

    [VB.NET 2008] Help Su scrttura record su Access

    Non sono ancora molto pratico Della scittura dei campi su database access specialmente con query parametriche.
    questo script non mi da nessun errore ma non scrive nulla sul database cosa ha mancato?
    grazie.

    Inoltre un cosiglio se utilizzare
    Parameters.AddWithValue(
    oppure
    Parameters.Add(
    • Public Class prova

      Dim MyDataAdp As New OleDbDataAdapter()
      Dim conn As New OleDbConnection()
      Dim intCurrentIndex As Integer = 0

      Function NewRec()

      Dim SQL As String = "SELECT * FROM HISTORY_GPSPOS;"
      conn.ConnectionString = My.Settings.BOAConnectionString.ToString()
      Dim insertcommand2 As New OleDbCommand(SQL, conn)
      conn.Open()

      Dim insertStatement2 As String = "INSERT INTO HISTORY_GPSPOS (GPSPOS_LATDIR) VALUES (@GPSPOS_LATDIR)"

      insertcommand2.Parameters.AddWithValue("@GPSPOS_LA TDIR", "Prova")

      insertcommand2.ExecuteNonQuery()
      conn.Close()
      Return True

      End Function

      End Class
    Delfino Cobalto

  2. #2
    A prima vista prova ad aprire la connessione prima della creazione di insertcommand2 e poi usa Add invece di AddWithValue.
    Fammi sapere.

  3. #3
    Ciao. Ho provato come mi hai suggerito ma non fuzniona,
    ho anche provato ad togliere il parametro e forzare una stringa direttamwente nella query ma non va.

    credo che nel codice manchi un pezzo che salvi effettivemente i dati sul database

    conn.ConnectionString = My.Settings.BOAConnectionString.ToString()
    conn.Open()
    Dim insertcommand2 As New OleDbCommand(SQL, conn)
    'conn.Open()

    Dim insertStatement2 As String = "INSERT INTO HISTORY_GPSPOS (@GPSPOS_LATDIR) VALUES (@GPSPOS_LATDIR)"

    insertcommand2.Parameters.Add("@GPSPOS_LATDIR", OleDbType.Char, 18).Value = "prova"

    insertcommand2.ExecuteNonQuery()
    Return True
    conn.Close()
    Delfino Cobalto

  4. #4
    Grazie Ho risolto...
    Il vero problema era la stringa di connessione.
    Invece di inviare una INSERT INTO usavo erroneamente la SELECT

    La domanda che mio pongo è quando e perchè si utilizza
    Parameters.AddWith() invece di Parameters.Add()?

    il secondo lo preferisco ma vorrei sapere anche se è un comando legacy...

    Grazie ancora
    Delfino Cobalto

  5. #5
    Dim SQL As String = "SELECT * FROM HISTORY_GPSPOS;"
    conn.ConnectionString = My.Settings.BOAConnectionString.ToString()
    Dim insertcommand2 As New OleDbCommand(SQL, conn)
    Eh beh, da una più attenta analisi

    Penso che la differenza tra Add e AddWithValue si possa racchiudere con questa considerazione che ho trovato in rete:
    The advantage is the implicit conversion, but it's also the disadvantage, since the conversion may not be optimal. Maybe your SQL statement or SP expects a certain string parameter to be a char(10) or a varchar(20), but AddWithValue will send it as nvarchar(length of string). This can cause implicit casting/conversion in the DBMS, which can be a real performance hog.
    codice:
    Cmd.Parameters.Add("@" & NomeCampo, TipoCampo).Value = ValoreRecord
    codice:
    insertcommand2.Parameters.AddWithValue("@GPSPOS_LATDIR", "Prova")
    Attendiamo comunque considerazioni da qualcuno più esperto.

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.