PDA

View Full Version : طریقه ی دسترسی به یک StoreProcedure چگونه است؟



sara_wait_for_you
شنبه 16 شهریور 1387, 11:19 صبح
سلام
خسته نباشید
من یک StoredProcedure را در یک برنامه استفاده می کنم اما برنامه پیغام می دهد که این استر را نمی شناسد.با وجود اینکه نام استر در دیتابیس و برنامه یکی است و کانکشن نیز درست است.اما شاید به استر دسترسی ندارم.چندین بار هم دیتاست را configure کرده ام.
لطفا راهنماییم کنید.
با تشکر

Blackk_lightt
شنبه 16 شهریور 1387, 14:36 عصر
سلام


اما برنامه پیغام می دهد که این استر را نمی شناسد

استر ؟؟؟


commandtype مربوط به sqlcommand رو برابر commandtype.StoreProcedure قرار دادی ؟

mohammad272005
شنبه 16 شهریور 1387, 21:43 عصر
سلام
لطفا متن error رو بنویس

sara_wait_for_you
یک شنبه 17 شهریور 1387, 09:31 صبح
سلام
لطفا متن error رو بنویس
couldnot find storeprocedurename:متن پیغام
ضمنا من دیتا ست را با tableadapter پر می کنم.

fbayanati
دوشنبه 18 شهریور 1387, 00:50 صبح
Sorry to type in English
You can find a good simple guide here:
http://www.sqlteam.com/article/stored-procedures-returning-data

Look at following URL to install Adventure Works database sample for SQL 2005 (or 2008)
http://iborn2code.blogspot.com/2008/08/get-tables-columns-using-information.html

Sample 1:
Simple store procedure call



USE [AdventureWorksLT]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[myTstSP]
AS
BEGIN
SET NOCOUNT ON;
select count(*) from salesLT.customer
END




string sqlExp05CnStr = @"Data Source=.\SQLEXPRESS;Initial Catalog=AdventureWorksLT;Integrated Security=True";
using (SqlConnection sqlExp05Cn = new SqlConnection(sqlExp05CnStr))
{
try
{
SqlCommand mySqlCmd = new SqlCommand("myTstSp", sqlExp05Cn);
sqlExp05Cn.Open();

int retVal = (int) mySqlCmd.ExecuteScalar();
MessageBox.Show(retVal.ToString());
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
finally
{
sqlExp05Cn.Close();
}
}


Sample 2:
Call SP with parameters:


USE [AdventureWorksLT]
GO

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[getCmpnyEmail]
@cmpnyName nvarchar(128),
@cmpnyEmail nvarchar(50) OUTPUT
AS
BEGIN
SET NOCOUNT ON;
Select @cmpnyEmail = EmailAddress from SalesLT.Customer where CompanyName = @cmpnyName
SELECT @cmpnyName, @cmpnyEmail
END



string sqlExp05CnStr = @"Data Source=.\SQLEXPRESS;Initial Catalog=AdventureWorksLT;Integrated Security=True";
using (SqlConnection sqlExp05Cn = new SqlConnection(sqlExp05CnStr))
{
try
{
SqlCommand mySqlCmd = new SqlCommand("getCmpnyEmail", sqlExp05Cn);
mySqlCmd.CommandType = CommandType.StoredProcedure;
mySqlCmd.Parameters.Add( "@cmpnyName", SqlDbType.NVarChar, 128).Value = "Bike World";
mySqlCmd.Parameters.Add( "@cmpnyEmail", SqlDbType.NVarChar, 50).Direction = ParameterDirection.Output;

sqlExp05Cn.Open();

mySqlCmd.ExecuteScalar();
MessageBox.Show("Email: " + mySqlCmd.Parameters["@cmpnyEmail"].Value );
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
finally
{
sqlExp05Cn.Close();
}
}


Hope that helps