2011-03-24 76 views
3

我如何发送三个参数到存储过程在sql中?传递参数到存储过程在C#

这是我的错误:过程或函数GetIslemIdleri指定的参数太多。

这是我的存储过程:

CREATE PROCEDURE GetIslemDetayIdleri 

@islemId int, 
@dovizTanim nvarchar(10), 
@yapilanIslemTuru nvarchar(20) 
AS 
BEGIN 
    SET NOCOUNT ON; 

SELECT ([t0].[TOPLAMTUTAR]) + ([t0].[KDVTUTAR]) AS [value] 
FROM [dbo].[TBLP1ISLEMDETAY] AS [t0] 
INNER JOIN [dbo].[TBLP1ISLEM] AS [t1] ON [t1].[ID] = [t0].[ISLEM_ID] 
WHERE ([t0].[ISLEM_ID] = @islemId) AND 
     ([t0].[FIYATBIRIM] = @dovizTanim) AND 
     ([t1].[YAPILANISLEM] = @yapilanIslemTuru) AND 
     ([t0].[KDVDAHILMI] = 0) 
END 

这里是我的代码:

 decimal kurToplamQuery = 0; 
     string connString = System.Configuration.ConfigurationManager.ConnectionStrings["LocalSqlServer1"].ConnectionString; 

     SqlConnection sqlConn = new SqlConnection(connString); 
     sqlConn.Open(); 

     SqlCommand cmd; 

     cmd = new SqlCommand("GetIslemIdleri", sqlConn); 
     cmd.CommandType = CommandType.StoredProcedure; 
     cmd.Parameters.Add(new SqlParameter("@islemId", SqlDbType.Int)).Value = islemId; 
     cmd.Parameters.Add(new SqlParameter("@dovizTanim", SqlDbType.NVarChar)).Value = dovizTanim; 
     cmd.Parameters.Add(new SqlParameter("@yapilanIslemTuru", SqlDbType.NVarChar)).Value = yapilanIslemTipi; 

     using (var reader = cmd.ExecuteReader())*//error occurs here* 
     { 
      while (reader.Read()) 
      { 
       kurToplamQuery = reader.GetDecimal(0);      
      } 
     } 
     sqlConn.Close(); 
     return kurToplamQuery; 

感谢您的帮助。

+1

那是你不调用一个发布存储过程的问题?他们有不同的名字。 – 2011-03-24 13:27:08

+0

该死的,是的,谢谢 – Bastardo 2011-03-24 13:28:33

回答

5

该存储过程被称为GetIslemDetayIdleri,但代码使用名为GetIslemIdleri的存储过程。也许后者的参数比前者少,你打算在代码中调用前者?

+0

谢谢,我想我必须休息一下。 – Bastardo 2011-03-24 13:35:24

+1

@EmreVeriyaz:它发生在我们身上。不要低估代码中第二组眼睛的价值,即使它只是为了找到小事情。 – David 2011-03-24 13:38:30

+0

我会记住这一点,非常感谢:) – Bastardo 2011-03-24 13:43:46

2

您的存储过程:GetIslemDetayIdleri有不同的名称,然后你调用:

cmd = new SqlCommand("GetIslemIdleri", sqlConn); 
+0

Smejda谢谢帕维尔。 – Bastardo 2011-03-24 13:36:52

+1

很高兴我能帮到你。 – 2011-03-24 13:39:27

3

GetIslemDetayIdleri = GetIslemIdleri