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

    costrutto Try.... Catch non preso in considerazione

    Premetto che mi sto avvicinando da poco al vb.net.
    Girovagando per la rete sono riuscito a fare questo:

    codice:
    Imports System.Data.OleDb
    
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            Dim objconn As OleDbConnection
            Dim stringaconn As String
            Dim stringasql As String
            Dim objcomm As OleDbCommand
            stringaconn = "Provider=Microsoft.JET.OLEDB.4.0;Data Source="
            stringaconn = stringaconn & "C:\Users\Silvia\Desktop\prova.mdb"
            objconn = New OleDbConnection(stringaconn)
            objconn.Open()
            stringasql = "Insert into Tabella1(cognome,nome) values('"
            stringasql = stringasql & Me.txt_cognome.Text & "'" & ","
            stringasql = stringasql & "'" & Me.txt_nome.Text & "'" & ")"
            objcomm = New OleDbCommand(stringasql, objconn)
            Dim risputente As Integer
            Try
                risputente = objcomm.ExecuteNonQuery()
                If risputente = 1 Then
                    MsgBox("Inserimento effettuato con successo")
                    objconn.Close()
                    Me.txt_cognome.Text = ""
                    Me.txt_nome.Text = ""
                    Me.txt_cognome.Focus()
                End If
            Catch es As Exception
                MsgBox("Errore: il campo cognome e/o nome sono vuoti")
                objconn.Close()
            End Try
        End Sub
    Tuttavia riscotro che anche se non immetto dati ottengo sempre il messaggio di inserimento con successo.
    Secondo voi dove sbaglio ??

    Grazie

  2. #2
    se non metti dati vorrà dire che hai inserito un bel pò di record con nome e cognome a stringa vuota... a meno che tu non metta un contraint unique l'inserimento va a buon fine anche
    con cognome = '' e nome = ''
    se metti unique quanto meno ne inserirai solo uno...

    cmq ti consiglio di usare System.Text.Stringbuilder piuttosto che concatenare
    la stringa come hai fatto nell'esempio

  3. #3
    e cmq il try non serve mica per controllare e validare se i tuoi campi sono stati riempiti, quello puoi farlo nell'evento validate della textbox

  4. #4
    Max Mercury intanto grazie per la risposta.
    Come dicevo sul thread sono nuovo di Vb.net... puoi farmi un'esempio di come usare e dove inserire unique ed anche il System.Text.Stringbuilder ???

    Grazie

  5. #5
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    Originariamente inviato da Max Mercury
    e cmq il try non serve mica per controllare e validare se i tuoi campi sono stati riempiti, quello puoi farlo nell'evento validate della textbox
    Sono d'accordo con Max, anzi sostituirei il "puoi farlo" con il "devi farlo".

    Aggiungo anche che si dovrebbero SEMPRE usare i parametri:
    http://msdn.microsoft.com/en-us/library/ms254953.aspx

    Creare una query in quel modo è il miglior modo per complicarsi inutilmente la vita, oltre che ad aprire le porte agli Hackers.

    Può essere utile dare una lettura a qualche articolo:

    Una piaga chiamata SQL Injection
    http://msdn.microsoft.com/it-it/library/cc185099.aspx

    Tecniche: SQL Injection
    http://sicurezza.html.it/articoli/le...sql-injection/


  6. #6
    Originariamente inviato da Traxsung
    Max Mercury intanto grazie per la risposta.
    Come dicevo sul thread sono nuovo di Vb.net... puoi farmi un'esempio di come usare e dove inserire unique ed anche il System.Text.Stringbuilder ???

    Grazie
    Il constraint unique lo metti nel db, e ora a memoria il comando non me lo ricordo
    sarà qualcosa tipo Alter Table1 add constraint [nome] unique ecc...

    cmq fai una ricerca su google e vedrai che lo trovi, in ogni caso non è quello il tuo problema,
    sarebbe assurdo mettere un constraint unique su nome e cognome!
    Vorrebbe dire non poter inserire due persone con lo stesso nome, o due persone con lo stesso
    cognome.

    Come ti ha detto gibra, ed anche io, devi controllare nel validate della textbox che il valore non sia stringa vuota, così come hai scritto codice nell'evento click di Button1 tanto puoi fare sulla TextBox.
    Il problema è che una spiegazione del genere non ti basta perche ci sono molte altre cose
    che dovrei dirti e il post verrebbe troppo lungo, io sono a lavoro e non posso stare tutto il giorno sul forum.

    Comprati un libro su vb.net, dopo che ti sei letto 2-3 capitoli queste domande ti sembreranno così ingenue...

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.