2011-03-24 75 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