数据库
首页 > 数据库> > c# – 将列表作为Sql表类型参数传递

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

作者:互联网

我正在尝试将我的班级列表作为DbParameter传递.可能在我的存储过程中定义了表类型.

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

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

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;
      }
    }

我收到这样的错误:

Failed to convert parameter value from a List1 to a IEnumerable1.

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

标签:c,sql-server-2012,wpf,generic-list
来源: https://codeday.me/bug/20190612/1225355.html