Recordsaffected

venerdì 10 agosto 2007 - 15.17

bluland Profilo | Guru

Sto usando il metodo in oggetto

in questo modo

connord.Open() Dim cmd As New SqlCommand("spDeleteId", connord) cmd.CommandType = CommandType.StoredProcedure Dim id As SqlParameter = New SqlParameter("@id", Me.TextBox1.Text.Trim) id.Direction = ParameterDirection.Input cmd.Parameters.Add(id) Dim read As SqlDataReader read = cmd.ExecuteReader(CommandBehavior.CloseConnection) read.Close() Dim ra As Integer = read.RecordsAffected.tostring


ma mi ritorna sempre -1

non riesco a capire l'errore

idee?


--------------------
Vincenzo PESANTE
System Engineer

alx_81 Profilo | Guru

>Sto usando il metodo in oggetto
>
>in questo modo
>
>connord.Open()
>
> Dim cmd As New SqlCommand("spDeleteId", connord)
>
> cmd.CommandType = CommandType.StoredProcedure
>
>Dim id As SqlParameter = New SqlParameter("@id", Me.TextBox1.Text.Trim)
>
> id.Direction = ParameterDirection.Input
>
> cmd.Parameters.Add(id)
>
> Dim read As SqlDataReader
>
>
>read = cmd.ExecuteReader(CommandBehavior.CloseConnection)
>
> read.Close()
>
>Dim ra As Integer = read.RecordsAffected.tostring
>
>
>ma mi ritorna sempre -1
>
>non riesco a capire l'errore
>
>idee?
è importante sapere cosa fa la tua stored.. anche se dal nome sembra abbastanza chiaro .
Comunque, se puoi, posta anche il codice della stored procedure per vedere se il recordsaffected può tornarti un conteggio valido.
Ciao!
>
>
>--------------------
>Vincenzo PESANTE
>System Engineer

Alx81 =)

http://blogs.dotnethell.it/suxstellino

bluland Profilo | Guru

ecco:



Create procedure SPdeleteid


@ID AS DECIMAL

as


DELETE FROM TABLE WHERE ID = @ID

Ciao
--------------------
Vincenzo PESANTE
System Engineer

micto27 Profilo | Senior Member

>ecco:
>Create procedure SPdeleteid
>
>@ID AS DECIMAL
>as
>
>DELETE FROM TABLE WHERE ID = @ID
>

anzichè

Dim read As SqlDataReader
read = cmd.ExecuteReader(CommandBehavior.CloseConnection)
read.Close()
Dim ra As Integer = read.RecordsAffected.tostring

prova con

Dim ra As Integer = cmd.ExecuteNonQuery()

Ciao, Michele

bluland Profilo | Guru

Grazie michele, ma gia avevo provato con insucesso!

non capisco proprio!


Ciao
--------------------
Vincenzo PESANTE
System Engineer

alx_81 Profilo | Guru

>ecco:
>
>
>
>Create procedure SPdeleteid
>
>
>@ID AS DECIMAL
>
>as
>
>
>DELETE FROM TABLE WHERE ID = @ID
>
>Ciao
Dunque.. ho ricreato lo stesso scenario..
ma il recordsaffected col tuo codice mi torna il numero di righe effettivamente considerato nell'operazione.
Rimane una possibilità.
Hai messo da qualche parte nell'ambito della stored procedure un SET NOCOUNT ON? perchè se così fosse non avresti messaggi di ritorno e anche il recordsaffected varrebbe sempre = -1..
Se non è nemmeno così, puoi usare un parametro di output..
Oppure puoi ciclare il reader e contare (ma te lo sconsiglio vivamente)..
non ho altre idee..
Ciao!!
Alx81 =)

http://blogs.dotnethell.it/suxstellino

micto27 Profilo | Senior Member

>Grazie michele, ma gia avevo provato con insucesso!
>
>non capisco proprio!
>
>
>Ciao
>--------------------
>Vincenzo PESANTE
>System Engineer

Allora fa così:

tieni la soluzione che utilizza

Dim ra As Int32 = cmd.ExecuteNonQuery()

però modifica leggermente la stored procedure e riprova.

-----------------------------------------------------------------------
Create procedure SPdeleteid
@ID AS DECIMAL
as

SET NOCOUNT OFF
DELETE FROM TABLE WHERE ID = @ID
------------------------------------------------------------------------

aggiunta impostazione SET NOCOUNT OFF prima delle DELETE

Ciao, Michele

bluland Profilo | Guru

Accidenti non ci avevo pensato a questa cosa, la SP la scrissi tantissimo tempo fa e sinceramente non lo ricordo, anzi a dire la verità nel momento che ho scritto l'aspx non l'ho guardate neanche, lunedi che torno a lavoro vedo, credo che sia la soluzione!!!




grazie



--------------------
Vincenzo PESANTE
System Engineer
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