0

我正在尝试oSiteCompany使用方法覆盖来填充我的对象(),当我使用SelectQueryProc()20 个参数时它正在工作,但是当我只传递 1 个参数(COMPANY_IDSqlException时被捕获,表明过程或函数pSiteCompany_GetSiteCompanySingleByCompanyID需要参数@CompanyID,但未提供。

谁能建议导致错误的原因?提前致谢!

public List<oSiteCompany> GetSiteCompanySingleByCompanyID(string companyID)
{
    List<oSiteCompany> newSiteCompany = new List<oSiteCompany>();
    DataTable dt = new DataTable();

    SqlParameter[] sqlParam = new SqlParameter[1];
    sqlParam[0] = new SqlParameter("@COMPANY_ID", SqlDbType.VarChar);
    sqlParam[0].Value = companyID;

    CommonDAL commonDAL = new CommonDAL();
    dt = commonDAL.SelectQueryProc("pSiteCompany_GetSiteCompanySingleByCompanyID", sqlParam);

    foreach (DataRow dr in dt.Rows)
    {
        newSiteCompany.Add(new oSiteCompany()
        {
            CompanyID = dr["COMPANY_ID"].ToString(),
            CompanyName = dr["COMPANY_NAME"].ToString(),
            Type = dr["TYPE"].ToString(),
            Description = dr["DESCRIPTION"].ToString(),
            FormulaID = dr["FORMULA_ID"].ToString(),
            Address1 = dr["ADDRESS1"].ToString(),
            Address2 = dr["ADDRESS2"].ToString(),
            Address3 = dr["ADDRESS3"].ToString(),
            Address4 = dr["ADDRESS4"].ToString(),
            City = dr["CITY"].ToString(),
            State = dr["STATE"].ToString(),
            PostalCode = dr["POSTAL_CODE"].ToString(),
            CountryCode = dr["COUNTRY_CODE"].ToString(),
            Status = dr["STATUS"].ToString(),
            BillingReport = dr["BILL_REPORT"].ToString(),
            AccountCode = dr["ACCOUNT_CODE"].ToString(),
            OrderNumber = dr["ORDER_NUMBER"].ToString(),
            CostCenter = dr["COST_CENTER"].ToString(),
            ReferenceNumberSequence = dr["REF_NUM_SEQ"].ToString(),
            InvoiceRemarks = dr["REMARKS"].ToString()
        });
    }
    return newSiteCompany;
}

public DataTable SelectQueryProc(String _storedProc)
{
    DataTable t = new DataTable();

    try
    {
        using (SqlConnection sqlConnection = new SqlConnection(CommonEntity.ConnectionString))
        {
            sqlConnection.Open();
            using (SqlDataAdapter adapter = new SqlDataAdapter(_storedProc, sqlConnection))
            {
                adapter.SelectCommand.CommandType = CommandType.StoredProcedure;
                adapter.Fill(t);
            }
        }
    }
    catch (SqlException e)
    {
        throw new SystemException(e.ToString());
    }
    finally
    {

    }
    return t;
}

public DataTable SelectQueryProc(String _storedProc, SqlParameter[] sqlParameter)
{
    DataTable t = new DataTable();

    try
    {
        using (SqlConnection sqlConnection = new SqlConnection(CommonEntity.ConnectionString))
        {
            sqlConnection.Open();
            using (SqlDataAdapter adapter = new SqlDataAdapter(_storedProc, sqlConnection))
            {
                adapter.SelectCommand.CommandType = CommandType.StoredProcedure;
                adapter.SelectCommand.Parameters.AddRange(sqlParameter);
                adapter.Fill(t);
            }
        }
    }
    catch (SqlException e)
    {
        throw new SystemException(e.ToString());
    }
    finally
    {

    }
    return t;
}
4

1 回答 1

0

您的参数名称错误,它不应该有下划线。改变

sqlParam[0] = new SqlParameter("@COMPANY_ID", SqlDbType.VarChar);

sqlParam[0] = new SqlParameter("@CompanyID", SqlDbType.VarChar);
于 2013-11-14T05:42:15.963 回答