Reputation: 1
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."}
Upvotes: 0
Views: 80