小编May*_*dal的帖子

将列表作为Sql表类型参数传递

我正试图通过我的班级列表DbParameter.可能在我的存储过程中定义了表类型.

现在,我没有得到如何传递List<>到存储过程,因为定义的表类型Tables只接受.

在这里,我正在采用我的方法.

public static AddCustomer(List<Customer> customer)
{
      List<DbParameter> lstDbParameters = null;

      try
      {
        #region Set the Parameters
        lstDbParameters = new List<DbParameter>();
        SqlParameter dbAcceptedBillDetails = new SqlParameter("@Customers",
                                                             customer);

        dbAcceptedBillDetails.SqlDbType = SqlDbType.Structured;
        lstDbParameters.Add(dbAcceptedBillDetails as DbParameter);
        lstDbParameters.Add(CDDAC.MakeDbParameter(dbProvider,
                                                  "@ErrorMessage",
                                                  DbType.String,
                                                  null,
                                                  500,
                                                  ParameterDirection.Output));
        #endregion

        //Call the static ExecuteNonQuery method.
        CDDAC.ExecuteNonQuery(dbProvider,
                              connectionString,
                              "AddCustomer",
                              CommandType.StoredProcedure,
                              lstDbParameters.ToArray());
      }
      catch (Exception ex)
      {
        throw;
      }
    }
Run Code Online (Sandbox Code Playgroud)

我收到这样的错误:

无法从列表1 to a IEnumerable1 转换参数值.

我知道我可以将此列表转换为DataTable然后在存储过程中传递它,但它似乎很耗时.:(

c# wpf generic-list sql-server-2012

6
推荐指数
1
解决办法
2万
查看次数

标签 统计

c# ×1

generic-list ×1

sql-server-2012 ×1

wpf ×1