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

    Controllare se il dato esiste e poi fare una insert

    Ciao, probabilmente l'argomento è stato trattato varie volte...
    Vorrei incominciare ad integrare le mie applicazioni classic asp con qualcosina di asp.net magari partendo dalle registrazioni utente del nostro sito.
    Quello che vorrei realizzare ( lo so eseguire in classic asp) è un semplice controllo con un alert magari usando la funzione uploadpanel in modo da visualizzare una specie di modal view.
    Ho letto vario materiale a riguardo ma vi confesso che sono un po confuso.
    Ora chiedo gentilmente se prendendo spunto da un esempio preso dalla rete mi aiutate ad inserire la funzione di controllo da fare prima della insert.?
    Grazie, ciao.

    codice:
    <script runat="server">
    
        Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs)
            Dim Connection As OledbConnection
            Connection = New OleDbConnection("Provider=Microsoft.Jet.Oledb.4.0;" & _
                                         "Data Source=C:\Inetpub\wwwroot\code\Customers.mdb")
            Connection.Open()
            Dim Command As OleDbCommand
            Command = New OleDbCommand("INSERT INTO tblCustomers(FirstName, LastName)" & _
            " VALUES ('Michael', 'Wall')", Connection)
            Command.ExecuteNonQuery()        
            Connection.Close()
                   
            Label1.Text="Record Inserted"
        End Sub
    
    </script>

  2. #2
    codice:
    string lastName = "?";
    string firstName = "?";
    string query = string.forma("IF NOT EXISTS(SELECT 1 FROM tblCustomers WHERE FirstName='{0}' AND LastName='{1}')) INSERT INTO tblCustomers(FirstName,LastName) VALUES('{0}','{1}')", firstName, lastName);
    Chi sbaglia, apprende meglio di chi non ha mai commesso errori.
    DOT.NET Addicted since 2006 (My Blog)

  3. #3
    Ciao grazie della tua risposta anche se non riesco ad interpretarla visto le mie ridotte conoscenze..

    E' possibile con il tuo esempio visualizzare un alert con il classico
    -------------
    if "utente esistente " e quindi mando un alert...etc etc
    else
    response.redirect.... vai alla pagina xxx
    -------------------
    Grazie, ciao

  4. #4
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887
    Il modo più comprensibile per te ora forse è questo:

    codice:
            If Not IsPostBack Then
                Dim Connection As OledbConnection
                Connection = New OleDbConnection("Provider=Microsoft.Jet.Oledb.4.0;Data Source=C:\Inetpub\wwwroot\code\Customers.mdb")
                Connection.Open()
    
                Dim Command_Controlla_Esistenza As OleDbCommand
                Command_Controlla_Esistenza = New OleDbCommand("SELECT FirstName FROM tblProva WHERE firstName='Michael' AND lastName='Wall'", Connection)
                Dim Reader As OleDbDataReader
                Reader = Command_Controlla_Esistenza.ExecuteReader()
    
                ' Controllo se il reader contiene il record oppure è vuoto
                If Reader.HasRows Then
                    Response.Write("L'utente è già esistente")
                Else
                  Try 
                    Dim Command As OleDbCommand
                    Command = New OleDbCommand("INSERT INTO tblProva(FirstName, LastName)VALUES ('Michael', 'Wall')", Connection)
                    Command.ExecuteNonQuery()
                    Response.Redirect("Default.aspx")
                   Catch ex as Exception
                     response.write(ex.message)
                   End Try
                End If
    
                Connection.Close()
            End If
    Ma non è assolutamente quello migliore.

    La query di RobyConte (con un solo Command come hai fatto tu inizialmente), dovrebbe (non ricordo se come testo di un Command puoi dargli una istruzione SQL che inizia con un IF NOT EXISTS) restituirti 0 righe (esiste) oppure 1 riga (inserito) [se ho dedotto bene].
    Prova a mettere quel comando SQL come testo di un Command ed a inserirne i risultati in un Reader come ho fatto io qui sopra, per testarne l'esito...

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 © 2026 vBulletin Solutions, Inc. All rights reserved.