【发布时间】:2020-02-10 12:31:33
【问题描述】:
已经看到很多使用表值参数将数组值传递给存储过程的示例,我也遵循了相同的方法,但值没有插入到表中。 在这里,我必须发送一个具有一些 id 和一个 int 值的字符串数组。 我需要插入具有此唯一 ID 的完整数组值。
控制器
[HttpPost]
public JsonResult AssignGod(int id,string[] g)
{
SqlConnection con = null;
try
{
con = GetSqlConnectionObject(cs);
DataTable dt_god = new DataTable();
dt_god.Columns.Add("gods", typeof(String));
dt_god.Columns.Add("tid", typeof(Int32));
DataRow workRow;
foreach (string cat in g)
{
workRow = dt_god.NewRow();
workRow["gods"] = cat.Trim();
workRow["tid"] = id;
dt_god.Rows.Add(workRow);
}
SqlCommand cmd = new SqlCommand("AssignGod", con);
cmd.CommandType = CommandType.StoredProcedure;
SqlParameter tvparam = cmd.Parameters.AddWithValue("@templegod", dt_god);
tvparam.SqlDbType = SqlDbType.Structured;
cmd.ExecuteNonQuery();
string result = "success";
return Json(result, JsonRequestBehavior.AllowGet);
}
catch
{
throw;
}
finally
{
CloseSqlConnectionObject(con);
}
return Json("asa", JsonRequestBehavior.AllowGet);
}
存储过程
CREATE TYPE dbo.TempleGod AS TABLE
(gods NVARCHAR(200),tid int);
go
ALTER PROC [dbo].[AssignGod]
@templegod AS [dbo].TempleGod READONLY
AS
BEGIN
SET NOCOUNT ON;
BEGIN
BEGIN
INSERT dbo.TempleGod(templeid,gid) SELECT tid,gods FROM @templegod
END
END
While am running this code its not showing any error but the table remains empty
[![Table must be like this][1]][1]
【问题讨论】:
标签: arrays asp.net-mvc-4 stored-procedures table-valued-parameters