Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it L'avatar di M@LKAV
    Registrato dal
    Jan 2006
    Messaggi
    215

    [Vb.net 2005 Errore stored Sql server se la eseguo piu volte]

    Il titolo non è esemplare come spiegazione, cerco di rifarmi qua.

    Il sistema su cui lavorando è questo.

    Il mio programma controlla se in una cartella vengono creati dei file (.stb)
    se ne vengono creati li apro, li leggo e inserisco i dati in una tabella di un Database
    sql server 2005.

    Per fare l'inserimento dei valori nella tabella sto usando delle storedProcedure.
    E ora il problema:

    Il primo inserimento avviene senza problemi
    dal secondo in poi mi restituisce l'errore che non viene passato il primo parametro di input della stored.

    Stored ADD_PAZIENTE:
    codice:
    ALTER PROCEDURE [dbo].[SP_ADD_PAZIENTE]
    @NomeFile varchar(100),
    @Nome varchar(50)
    AS
    
    BEGIN
    	
    	SET NOCOUNT ON;
      INSERT INTO PAZIENTE (NomeFile,Nome)
     Values(@NomeFile,@Nome)
    
    END

    Ho creato una Classe paziente che dal costruttore prende il nome del file .stb e valorizza le proprietà del oggetto Paziente.
    Nella stessa Classe ho creato una funzione Add() che restituisce un True/False se l'inserimento avviene correttamente.

    Procedura ADD
    codice:
    Public Function Add() As Boolean
    
     Con1 = New OdbcConnection
            Con1.ConnectionString = strConnectionString
            Comand1 = New OdbcCommand("{call SP_ADD_PAZIENTE (?,?)}", Con1)
    
     ''Inserisco i valori nella Stored
    
            Dim prm As OdbcParameter = Comand1.Parameters.Add("@NomeFile", OdbcType.Char, 100)
            prm.Value = Me.FilePath
    
            prm = Comand1.Parameters.Add("@Nome", OdbcType.VarChar, 50)
            prm.Value = Me.Nome
    
       Try
    
                Con1.Open()
    
               Dim reader1 As OdbcDataReader = Comand1.ExecuteReader
               
                reader1.Close()
    
               
                Con1.Close()
                Return True
    
            Catch ex As OdbcException
                Con1.Close()
                Console.WriteLine(ex.Message)
                Return False
    
    
            End Try
    End Function
    Inserisco il primo file nella cartella e il paziente viene inserito
    Inserisco il secondo e mi restituisce l'errore " La procedura Sp_ADD_PAZIENTE richiede il parametro @NOME"

    Ringrazio anticipatamente tutti gli aiuti.
    Malkav
    La mia pazzia continua a prosciugare la mia anima

  2. #2
    Utente di HTML.it L'avatar di M@LKAV
    Registrato dal
    Jan 2006
    Messaggi
    215
    Ok posso considerare il problema risolto.
    Fermarsi a riflettere serve sempre.

    La soluzione è la seguente.
    Prima di inviare un parametro alla stored si deve controllare che non sia un valore nullo.

    codice:
     Dim prm As OdbcParameter = cmd2.Parameters.Add("@NomeFile", OdbcType.VarChar, 50)
                    If strPathFile = "" Then
                        prm.Value = DBNull.Value
                    Else
                        prm.Value = strPathFile
                    End If
    E il gioco è fatto
    La mia pazzia continua a prosciugare la mia anima

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.