Info insert se select è vera

mercoledì 25 giugno 2008 - 14.46

ertulio Profilo | Senior Member

Salve, ho la necessita di fare una insert se il testo del textbox del codfis risulta nel db. Utilizzo questo codice:


Try
Dim CodFis As String = TextBox2.Text()
Dim command As New OleDbCommand

command.Connection() = connection
command.CommandText() = "SELECT CodFis FROM Feedback WHERE CodFis='" + CodFis + "'"

Dim reader As OleDbDataReader = command.ExecuteReader()

If reader.Read() Then

command.Connection() = connection
command.CommandText() = "INSERT INTO Feedback (Data,Esito,Nome,Feedback) values ( '" + TextBox4.Text + "','" + RadioButtonList1.SelectedItem.Text + "','" + TextBox1.Text.Replace("'", "''") + "','" + TextBox3.Text.Replace("'", "''") + "')"
command.ExecuteNonQuery()


reader.Close()
connection.Close()

Else

reader.Close()
MsgBox("Il tuo codice fiscale non risulta tra i nostri clienti.")
End If
Catch
MsgBox(Err.Description)
End Try

ma mi dice AL COMANDO è GIA STATO ASSOCIATO UN DATAREADER APERTO CHEB DEVE ESSERE CHIUSO.
Dove sbaglio?


grazie1000
http://www.risorsefantacalcio.it

Risorse per tutti gli appassionati di fantacalcio da cui prelevare news, probabili formazioni, voti del corriere e gazzetta e tanhto altro.

rossimarko Profilo | Guru

Ciao,

l'errore è dovuto al fatto che stai utilizzando un command già associato al reader che stai scorrendo.

Per risolvere il problema devi creare un altro command che faccia la insert

If reader.Read() Then dim commandInsert as new SqlCommand() commandInsert.Connection = connection '... ecc ecc end if


Un'altra cosa: ti sconsiglio caldamente di creare le query sql accodando i parametri perchè potresti avere i classi problemi di sql injection. Prova ad utilizzare le query parametriche. Puoi approfondire il discorso partendo da questo post: http://www.dotnethell.it/forum/messages.aspx?ThreadID=23672

-----------------------------------------
Rossi Marco
http://blogs.dotnethell.it/rossimarko
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5