Error about object array converting

  • Thread starter Thread starter Ñ©ÔÆÓ¥
  • Start date Start date
Ñ

Ñ©ÔÆÓ¥

Hi,everyone,
I met a trouble,could you give me some useful hints,thank you very much!

===========error message:

Unable to cast object of type 'System.Object[]' to type
'System.Data.OleDb.OleDbParameter[]'.

==========source code like follow:

StringBuilder sbSQL = new StringBuilder();
ArrayList alParameters = new ArrayList();

sbSQL.Append(SQL_SELECT_ALL_TRANSFERS);

if ( ( aAccountNumber != null ) && ( aAccountNumber.Trim().Length > 0 ) )
{
sbSQL.Append(" and (AccountNumber = ?)");
alParameters.Add(OLEDBHelper.MakeInParam("@AccountNumber",
aAccountNumber));
}

// aPayDateTime
if ( aPayDateTime != DateTime.MinValue )
{
sbSQL.Append(" and (PayDateTime >= ?)");
alParameters.Add(OLEDBHelper.MakeInParam("@PayDateTime",
aPayDateTime.ToString("yyyyMMddHHmmss")));
}

// aPayAmount
if ( aPayAmount != -1 )
{
sbSQL.Append(" and (PayAmount >= ?)");
alParameters.Add(OLEDBHelper.MakeInParam("@PayAmount", aPayAmount));
}

// importance:error occured here
OleDbParameter[] inParameters = (OleDbParameter[])alParameters.ToArray();
 
OleDbParameter[] inParameters = new OleDbParameter[alParameters.Count];
alParameters.CopyTo(inParameters);

If you're using .NET 2.0, you can easily use List<OleDbParameter>
inParameters and inParameters.ToArray() as you did with the ArrayList.

Michael
 
Ñ©ÔÆÓ¥ said:
I met a trouble,could you give me some useful hints,thank you very much!

// importance:error occured here
OleDbParameter[] inParameters = (OleDbParameter[])alParameters.ToArray();

Use alParameters.ToArray(typeof(OleDbParameter));

Jon
 
Back
Top