[英]passing parameters to a stored procedure in C#
How can i send three parameters a to stored procedure in sql?如何将三个参数a发送到sql中的存储过程?
Here is my error : Procedure or function GetIslemIdleri has too many arguments specified.这是我的错误:过程或函数 GetIslemIdleri 指定了太多参数。
This is my stored procedure:这是我的存储过程:
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
Here is my code:这是我的代码:
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;
Thanks for your helps.感谢您的帮助。
The stored procedure is called GetIslemDetayIdleri
but the code is using a stored procedure called GetIslemIdleri
.所存储的过程被称为GetIslemDetayIdleri
但是代码是使用调用的存储过程GetIslemIdleri
。 Maybe the latter has fewer parameters than the former and you meant to call the former in the code?也许后者的参数比前者少,而您打算在代码中调用前者?
GetIslemDetayIdleri != GetIslemIdleri
您的存储过程: GetIslemDetayIdleri
名称与您的调用不同:
cmd = new SqlCommand("GetIslemIdleri", sqlConn);
in my case this code is worked .i hope this will work for your case在我的情况下,此代码有效。我希望这对您的情况有效
Procedure parameter names , type and lenght must be same like that过程参数名称、类型和长度必须相同
cmd.Parameters.Add(new SqlParameter("@islemId", SqlDbType.Int)).Value = islemId;
cmd.Parameters.Add(new SqlParameter("@dovizTanim", SqlDbType.NVarChar ,10)).Value = dovizTanim;
cmd.Parameters.Add(new SqlParameter("@yapilanIslemTuru", SqlDbType.NVarChar,20)).Value = yapilanIslemTipi;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.