Sakul Bhatia
Sakul Bhatia

Reputation: 1

{"Failed to convert parameter value from a Object[] to a Decimal."} in SqlBulkCopy using SqlParameter

I need to insert bulk data into a SQL Server database.

The data is fetched in SqlParameter.

foreach (DataColumn c in data.Columns)
{
    SqlDbType dbType = GetSqlDbTypeFromDotnetType(c.DataType);

    var columnDataObject = data.AsEnumerable().Select(r => r.Field<object>(c.ColumnName));

    object[] paramDataArray = (UploadEverythingInSingleBatch)
             ? columnDataObject.ToArray()
             : columnDataObject.Skip(skipOffset).Take(batchSize).ToArray();

    SqlParameter param = new SqlParameter();
    param.SqlDbType = dbType;
    param.Value = paramDataArray;
    parameters.Add(param);
}

SqlCommand cmd = _connection.CreateCommand();
cmd.CommandText = commandText;

//parameters data replaced
parameters.ForEach(p => cmd.Parameters.Add(p));

int result = cmd.ExecuteNonQuery();

// on execution nonquery 
// {"Failed to convert parameter value from a Object[] to a Decimal."}

enter image description here

Upvotes: 0

Views: 80

Answers (0)

Related Questions