J'ai l'erreur suivante lors de l'exécution de bulkcopy.System.InvalidOperationException avec SQlBulkCopy
System.InvalidOperationException
The given value of type String from the data source cannot be converted to
type decimal of the specified target column.
J'utilise le code suivant.
DataTable empTable = DataTemplate.GetEmployees();
DataRow row;
for (int i = 0; i < gv.Rows.Count;i++)
{
row = empTable.NewRow();
string empName = gv.DataKeys[i].Values[0].ToString(); //first key
string hourSalary = gv.DataKeys[i].Values[1].ToString(); //second key
row["Emp_Name"] = empName;
row["Hour_Salary"] = Convert.ToDecimal(hourSalary);
row["Advance_amount"] = Convert.ToDecimal(0);
row["Created_Date"] = Convert.ToDateTime(System.DateTime.Now.ToString());
row["Created_By"] = Convert.ToInt64(1);
row["Is_Deleted"] = Convert.ToInt64(0);
empTable.Rows.Add(row);
}
InsertintoEmployees(empTable, "Employee");
Mes types de données SQL pour les champs ci-dessus sont:
Emp_Name nvarchar(50) ,
Hour_Salary numeric(18, 2),
Advance_amount numeric(18, 2),
Created_Date datetime,
Created_By numeric(18, 0),
Is_Deleted numeric(18, 0)
Je ne sais pas ce que je fais mal.
Veuillez inclure la valeur de retour de Exception.ToString() (y compris la pile) L'idée est de savoir si vous obtenez l'exception lors du remplissage du DataTable ou lors du transfert du contenu DataTables dans la table de base de données. –