将输出参数传递给sp,该sp使用dapper接受数据表作为参数

时间:2017-04-18 03:39:48

标签: asp.net-mvc-4 dapper

嗨我正在研究mvc作为我学习的一部分,所以我遇到了一个需要将数据表传递到sp的情况,以及数据表我必须给出一个输出参数int这种类型。目前我正在使用此代码

con.Execute("XXXXXXX",
 new { @LoginId = LoginId, @City= City, @RegionCode = RegionCode, @CarList= Cars, @CompCOde = COmp},
 commandType: CommandType.StoredProcedure);

这里的Cars是一个数据表,所以我想为此添加一个输出参数,请给我一个解决方案。

1 个答案:

答案 0 :(得分:3)

我会创建一个参数列表,其中一个指定为ParameterDirection.Output,然后您就可以使用Get从中读取。

我使用以下示例做了一些假设,包括一个int输出参数(未测试)

            SqlConnection con = new SqlConnection();
            DynamicParameters p = new DynamicParameters();
            p.Add("@LoginId", LoginId, dbType: DbType.VarNumeric, direction: ParameterDirection.Input);
            p.Add("@City", City, dbType: DbType.VarNumeric, direction: ParameterDirection.Input);
            p.Add("@RegionCode", RegionCode, dbType: DbType.VarNumeric, direction: ParameterDirection.Input);
            p.Add("@CarList", Cars.AsTableValuedParameter());
            p.Add("@SomeId", dbType: DbType.Int32, direction: ParameterDirection.Output);
            con.Execute("XXXXXXX",p,commandType: CommandType.StoredProcedure);

            int someId = p.Get<int>("@SomeId");