2017-04-18 41 views
2

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

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

这里汽车是一个DataTable,所以我希望将输出参数添加到这一点,请建议我一个解决方案。

回答

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");