通过WCF服务将int列表传递到存储过程
我想通过用户定义的表类型将int数组传递给存储过程,然后将其插入到表中。通过WCF服务将int列表传递到存储过程
这里就是我试图做的:
-
创建类型:
CREATE TYPE [dbo].[GarantiesList] AS TABLE ([code_garantie] [nvarchar](max) NULL)
-
获取&插入到存储过程:
ALTER PROCEDURE [dbo].[PS_EditerNouveauContrat_MRH] @CODE_GARANTIES GarantiesList READONLY AS BEGIN SET NOCOUNT ON; INSERT INTO dbo.MVT_GARANTIES (CODE_GARANTIE) SELECT c.code_garantie FROM @CODE_GARANTIES c;
但这失败。我得到了错误:
没有映射从对象类型系统Collections.Generic.List`1存在[[System.Int32,mscorlib程序,版本= 4.0.0.0,文化=中性公钥= b77a5c561934e089]]对已知的托管提供商本机类型
有没有人知道如何解决这个问题?
-- your Insert Statement is Not Proper try this
ALTER PROCEDURE [dbo].[PS_EditerNouveauContrat_MRH]
@CODE_GARANTIES NVARCHAR(MAX)
AS
BEGIN
SET NOCOUNT ON;
DECLARE @Sql_string NVARCHAR(4000)
SET @Sql_string ='INSERT INTO dbo.MVT_GARANTIES (CODE_GARANTIE)
SELECT code_garantie
FROM '[email protected]_GARANTIES+''
PRINT @Sql_string
EXEC (@Sql_string)
END
可能重复这个我试过,现在插入查询的CODE_GARANTIES不 承认,我有这样的错误:标量变量CODE_GARANTIES必须声明。 – KhadBr
现在我有这个错误:无法将参数值从List'1转换为IEnumerable'1。这可能是由于我从我的WCF服务传递的sqlParameter?这是我所做的: SqlParameter CODE_GARANTIES_Param = new SqlParameter(“@ CODE_GARANTIES”,CODE_GARANTIES); CODE_GARANTIES_Param.SqlDbType = SqlDbType.Structured; command.Parameters.Add(CODE_GARANTIES_Param); – KhadBr
@KhadBr exec PS_EditerNouveauContrat_MRH parameter_Name在sql server中,并检查你所面对的错误 –
的https://*.com/q/5595353/3925232 –