PDA

View Full Version : چگونگی گرفتن خروجی از Stored Procedure



Maryam80
چهارشنبه 24 اسفند 1384, 11:42 صبح
با سلام
من یک Stored Procedure برای عمل INSERT نوشته ام که پس از عمل ثبت می خواهم مقدار کلید اصلی را بعنوان خروجی ارسال کند ولیکن نمی دانم که به چه صورت می توان خروجی SP را درون یک متغیر در برنامه ریخت



SqlCommand1.CommandText = "INSERT TBL_Client(CLIENTNAME,GROUPID,CLIENTPARENTID,SHORT NAME,STRUCTUREID,VER,WHO,DELTAG,EDITTAG,CustomerID ,ContractID) VALUES('" & TxtClient.Text & "'," & CmbGroup.SelectedValue & "," & SelectedParentID & ",'" & TxtShortname.Text & "'," & CmbGroupStructure.SelectedValue & ",1," & KeepUserId & "," & deltag & ",0," & CmbCustomer.SelectedValue & "," & CmbContract.SelectedValue & ")"
SqlCommand1.CommandType = CommandType.StoredProcedure
SqlCommand1.CommandText = "exec Insert_Tbl_Client '" & TxtClient.Text & "'," & CmbGroup.SelectedValue & "," & SelectedParentID & ",'" & TxtShortname.Text & "'," & CmbGroupStructure.SelectedValue & ",1," & KeepUserId & "," & deltag & ",0," & CmbCustomer.SelectedValue & "," & CmbContract.SelectedValue & "," & ClientIDentity
SqlCommand1.Parameters.Add("@clientid", ClientIDentity)
SqlCommand1.Parameters("@clientid").Direction = ParameterDirection.ReturnValue
SqlCommand1.Parameters("@clientid").Value = "null"
SqlCommand1.Connection.Open()
ClientIDentity = SqlCommand1.ExecuteScalar
SqlCommand1.Connection.close()

M.kavyani
چهارشنبه 24 اسفند 1384, 14:00 عصر
با سلام
مشکل در کجاست؟ این کدش که مقداری بازگشتی از sp رو تو متغیره ClientIDentity ذخیره میکنه.

Maryam80
چهارشنبه 24 اسفند 1384, 14:39 عصر
مشکل حل شد

ممنون

hamed_bostan
پنج شنبه 25 اسفند 1384, 08:10 صبح
ضمنا فقط جهت اطلاع می گم که شما می تونید توی استورد پروسیجر خودتون بلافاصله بعد از دستور insert خود این کد رو بنویسید تا id رکورد insert شده رو براتون در بیاره :

SELECT @@IDENTITY AS 'Id' return

Cybersilent
چهارشنبه 21 بهمن 1388, 21:44 عصر
سلام خدمت دوستان
کاش به ما هم می گفتید مشکلش کجا بود که حل شد.

Cybersilent
شنبه 24 بهمن 1388, 12:25 عصر
سلام
اونقدر نگفتین تا خودم پیداش کردم

اینم کد وی بی هست که از یک Stored Procedure خروجی می گیره

Dim Avg As String
Cmd.CommandType = CommandType.StoredProcedure
Cmd.CommandText = "Show_Collegian_Average"
Cmd.Parameters.AddWithValue("@C_Code", MaskedTextBox4.Text)
Cmd.Parameters.AddWithValue("@Date", MaskedTextBox2.Text)
Cmd.Parameters.Add("@op", SqlDbType.Float, 3).Direction = ParameterDirection.Output
Cmd.ExecuteScalar()
Avg = DirectCast(Cmd.Parameters("@op").Value.ToString, String)