PDA

View Full Version : سوال: اجرای تابع عددی SQL در C#‎



shaghayegh_ir
شنبه 26 مرداد 1392, 14:55 عصر
سلام
من برای متغییر های یکی از تابع هام دو تا Function توی SQL ایجاد کردم که عدد Int رو برمیگردونه. توی برنامه فقط نمیدونم متغییرهام رو چه جوری مقدار دهی کنم .
در واقع مشکل اینه که توی SQL که تابع رو اجرا میکنم عدد 2 رو برمیگردونه ولی اینجا عدد 0 رو برمیگردونه
این تابع من توی SQL هست


ALTER Function [dbo].[Dore1](@First nvarchar(50) ,@second nvarchar(50))
Returns int
as
Begin

Declare @Tedad int


set @tedad= (select COUNT(sh_gharardad) From OrgGharardad where OrgGhAghdDate Between @First and @second)
return @Tedad
End


و این کد برنامه ام هست

int dore1, dore2;
ConnectDb Contact = new ConnectDb();
Contact.connect();
SqlCommand Cmd = new SqlCommand("dore1", cnn);
SqlCommand Cmd2 = new SqlCommand("dore2", cnn);
Cmd.CommandType = CommandType.StoredProcedure;
Cmd2.CommandType = CommandType.StoredProcedure;
cnn.Open();

Cmd.Parameters.AddWithValue("@First", txt_1_aghaz.Text);
Cmd.Parameters.AddWithValue("@Second", txt_1_payan.Text);

dore1=Convert.ToInt32( Cmd.ExecuteScalar());



Cmd2.Parameters.AddWithValue("@First2", txt_2_aghaz.Text);
Cmd2.Parameters.AddWithValue("@second2", txt_2_payan.Text);

dore2= Convert.ToInt32( Cmd2.ExecuteScalar());

CreateChart(dore1, dore2);
cnn.Close();

Reza_Yarahmadi
شنبه 26 مرداد 1392, 17:37 عصر
توابع رو نمیتونید به صورت مستقیم صدا بزنید.
دستور زیر رو اجرا کنید
SqlCommand Cmd = new SqlCommand("Select dbo.dore1(@First, @Second)", cnn);
Cmd.Parameters.AddWithValue("@First", txt_1_aghaz.Text);
Cmd.Parameters.AddWithValue("@Second", txt_1_payan.Text);
...
یا یک SP درست کنید و دستورات TSQL بالا رو توی اون قرار بدید.

shaghayegh_ir
شنبه 26 مرداد 1392, 20:27 عصر
ممنونم م م م م . درست شد . با همین گزینه ی بالا
یه سوال SP چی هست ؟

Reza_Yarahmadi
یک شنبه 27 مرداد 1392, 08:10 صبح
یه سوال SP چی هست ؟
Stored Procedure