从控制器传递UserDefined表类型参数

时间:2018-02-14 02:15:07

标签: c# sql asp.net-web-api controller

我第二次问这个问题,但我仍然没有得到答案。 我想在Web API控制器中执行具有用户定义的表类型的存储过程。

以下是控制器的代码:

public IHttpActionResult PostTableForDTProductCodePO([FromBody] List<TableForDTProductCodePO> tableForDTProductCodePO)
    {
      DataTable dtable = ToDataTable(tableForDTProductCodePO); // I am getting correct data in DataTable
        using (InspectionDBEntities dbCon = new InspectionDBEntities())
        {
            var response = dbCon.Database.ExecuteSqlCommand("EXEC dbo.ConsolidateInspection @TblConsolidation", dtable);
                dbCon.SaveChanges();
                return Ok("Done");
        }
    }

在上面的代码中,我试图创建SqlParameter并传递表数据,但它仍然没有用,这是我试过的

//SqlParameter tDataParam = new SqlParameter(); // pass tDataParam  instead dtable
                //tDataParam.ParameterName = ("@TblConsolidation");
                //tDataParam.SqlDbType = SqlDbType.Structured;
                //tDataParam.Value = dtable;
                //tDataParam.TypeName = "dbo.DTProductCodePO";

这是SQL查询

ALTER PROCEDURE [dbo].[ConsolidateInspection ]
@TblConsolidation DTProductCodePO READONLY
AS
BEGIN
    INSERT INTO TableForDTProductCodePO SELECT * FROM @TblConsolidation

END

我没有收到任何错误,但数据未添加到数据库中。从Postman,我在控制器参数中得到了正确的数据。

任何帮助?

谢谢

0 个答案:

没有答案