Utilizzo di store procedure di sql server con windows form

lunedì 04 settembre 2006 - 11.39

M@LKAV Profilo | Junior Member

Giorno a tutti ,
sto gestendo un db sql server e ho necessita dopo aver salvato un nuovo record in una tabella che mi restituisca l'id
del record ( che e un contatore)
mi hanno consigliatao di usare una store procedure ma nn me ne intendo molto ,,,
qualcuno me puo consigliare????
o dare qualche esempio su cui lavorare?
grazie

M@LKAV Profilo | Junior Member

perfetto, mi sai anche spiegare come prendere questo dato da windows form per riutilizzarlo???

M@LKAV Profilo | Junior Member

ci sto provando ma nn mi vien bene
hai qualche esempio da passarmi su cui mi posso rifare?

M@LKAV Profilo | Junior Member

posto qui il codice che non mi funziona
se qualcuno trova l'errore mi faccia sapere grazie


%
Imports System.Data.SqlClient
Imports System.Data
Imports System

Public Class outparamswithacommand


Public Sub Run()
Dim MsgString As String

Dim myConnection As SqlConnection

myConnection = New SqlConnection("server=(local);Trusted_Connection=yes; database= TestLinee")

Try
Dim CreateProcCommand As SqlCommand
Dim DropProcCommand As SqlCommand
CreateProcCommand = New SqlCommand("CREATE PROCEDURE InsertPercorso @Domenico nchar(15), @Identity int OUT as INSERT INTO PercorsoStradale (Denominazione) VALUES(@Domenico)RETURN @@ROWCOUNT", myConnection)
DropProcCommand = New SqlCommand("IF EXISTS (SELECT name FROM sysobjects WHERE name = 'InsertPercorso' AND type = 'P') DROP PROCEDURE InsertPercorso", myConnection)

myConnection.Open()
DropProcCommand.ExecuteNonQuery()
CreateProcCommand.ExecuteNonQuery()

Dim myCommand As SqlCommand
myCommand = New SqlCommand("InsertPercorso", myConnection)
myCommand.CommandType = CommandType.StoredProcedure


MsgString = myCommand.Parameters("@Identity").Value.ToString()
Catch e As Exception
MsgString = e.ToString()
Finally
myConnection.Close()
End Try

MsgBox(MsgString)
End Sub
End Class

%

totti240282 Profilo | Guru

INSERT YakName VALUES ('Graz')
SELECT @@IDENTITY

metti questa query all'interno di un sqlcommand e poi fai tuacommand.executesclar (se ricordo bene) e ti ritorna il tuo indice.

altro esempio

http://www.devx.com/getHelpOn/10MinuteSolution/20550?type=kbArticle&trk=MSCP

http://www.devx.com/tips/Tip/15368?type=kbArticle&trk=MSCP
C'è solo un capitano !!!!!!

M@LKAV Profilo | Junior Member

ora mi sono incasinato come si deve

allora ragazzi saro duro di comprendonio ma io ricomincio da capo

Allora considerando che il database si chiama "TEST"
la tabella "Percorso con due campi ID, Denominazione

Io devo inserire un nuovo record e farmi restituire l'id che e un contatore
Stiamo parlando sempre di visual basic net e sql server 2000

la store procedure e questa (prima di tutto ditemi se e corretta)
CREATE PROCEDURE InsertPercorso
@Malkav char(15),
@Identity int OUT
AS
INSERT INTO PercorsoStradale (Denominazione) VALUES(@Malkav)
SET @Identity = @@Identity
RETURN @@ROWCOUNT

poi
il codice e

dim con as new sqlconnction
dim comand as new sqlcommand
con.connectiostring = ""
comand.connnection = con
comand.commandtext = "InsertPercorso"
comand.CommandType = CommandType.StoredProcedure


ok
fino a qui c'e la posso fare
ora
com faccio a restituire il valore dell'id che lui crea al record in una variabile????

Perdonate la mia cocciutagine ma ho intenzione di capirlo una volta per tutte
Grazie

Andy Profilo | Senior Member

Da quello che ho capito io la creazione in SQL della SProcedure va bene, per leggere il dato in uscita invece di lanciare in comando con la ExecuteNonQuery come fai ora, prova a lanciarlo con il comando

Val = cmd.ExecuteScalar()

..e dovrebbe restituire il valore dentro il tuo parametro.
Andy

M@LKAV Profilo | Junior Member

perfettttttooooooooooo
ora ci sono
tutto ok

grazie a tutti

Andy Profilo | Senior Member

De nada

ciao
Andy
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