我第二次问这个问题,但我仍然没有得到答案。 我想在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,我在控制器参数中得到了正确的数据。
任何帮助?
谢谢