C# 当只有一个表值参数时,为过程分配太多参数
我正在使用asp.net(C#)、asp.NET4、SQLServer2012、IIS7 我想使用表值参数将excel数据导入sql server。但是我遇到了一个问题。 以下是部分代码: C# SQL server定义TVPC# 当只有一个表值参数时,为过程分配太多参数,c#,asp.net,sql-server,stored-procedures,C#,Asp.net,Sql Server,Stored Procedures,我正在使用asp.net(C#)、asp.NET4、SQLServer2012、IIS7 我想使用表值参数将excel数据导入sql server。但是我遇到了一个问题。 以下是部分代码: C# SQL server定义TVP CREATE TYPE [dbo].[TVP_Cost] AS TABLE( [mycompany] [nvarchar](50) NOT NULL, [myproject] [nvarchar](50) NOT NULL, [mydate] [date] NOT NUL
CREATE TYPE [dbo].[TVP_Cost] AS TABLE(
[mycompany] [nvarchar](50) NOT NULL,
[myproject] [nvarchar](50) NOT NULL,
[mydate] [date] NOT NULL,
[mytype] [nvarchar](50) NOT NULL,
[Area1] [numeric](18, 8) NOT NULL,
[Area2] [numeric](18, 8) NOT NULL,
--etc
)
GO
SQL Server存储过程
ALTER PROCEDURE [dbo].[loadCost]
@TVPCost dbo.TVP_Cost readonly
AS
BEGIN
SET NOCOUNT ON;
INSERT INTO Costtest (co1, co2,co3,co4,co5)
SELECT co1, co2, co3, co4, co5 from @TVPcost
END
错误消息是,我得到的参数太多,无法执行该过程。但是我只有一个参数,一个表值参数。我注意到您没有声明
mycmd
。是否可能您之前使用过该命令对象,并且其中已经有一些参数
命令对象很便宜,我总是买一个新的:
var cmd = MyConnection.CreateCommand();
谢谢。我犯了一个愚蠢的错误。忘了在新的上首字母。
var cmd = MyConnection.CreateCommand();