C#将一张表传入存储过程
一、创建一个用户自定义表类型
CREATE TYPE [dbo].[Excel_HsCode] AS TABLE( [material_no] [varchar](100) NULL, [oldhs_code] [varchar](100) NULL, [newhs_code] [varchar](100) NULL, [manual_seqno] [int] NULL ) GO
二、创建存储过程
create PROCEDURE [dbo].[Proc_UploadHsCode] @tb_data Excel_HsCode READONLY, @ResultLog varchar(100) OUTPUT AS BEGIN try begin tran SET NOCOUNT ON declare @num int= (select count(1) from @tb_data) SET NOCOUNT OFF set @ResultLog=CAST(@num as varchar);--返回传入的数据行数 commit tran END try begin catch rollback tran set @ResultLog='-100'; end catch
三、调用存储过程
SqlParameter[] para = { new SqlParameter("@tb_data",SqlDbType.Structured), new SqlParameter("@ResultLog",SqlDbType.VarChar,100) }; para[0].TypeName = "dbo.Excel_HsCode"; para[0].Value = //你的数据,DataTable数据类型; para[1].Value = "-100"; para[1].Direction = ParameterDirection.Output;//返回的值 var result = db.Database.ExecuteSqlCommand("exec [dbo].[Proc_UploadHsCode] @tb_data,@ResultLog output", para); var resultValues = para[1].Value.ToString();
List转DataTable方法:https://www.cnblogs.com/work-code/p/15480663.html
浙公网安备 33010602011771号