方法1:DataTable方式
/// <summary>
/// 批量新增数据(限Excel使用)
/// </summary>
/// <param name="dt">DataTable(其中的列名要与数据库表列名一致)</param>
public int BatchAdd(DataTable dt)
{
int rs = 1;
SqlConnection sqlConn =
new SqlConnection(ConfigurationManager.AppSettings["ConnectionString"]);
try
{
sqlConn.Open();
SqlBulkCopy sqlbulkcopy = new SqlBulkCopy(sqlConn);
sqlbulkcopy.DestinationTableName = "PhoneToQRCode";//数据库中的表名
sqlbulkcopy.WriteToServer(dt);
}
catch (Exception ex)
{
rs = 0;
}
finally
{
sqlConn.Close();
}
return rs;
}
用SqlBulkCopy批量安插数据时提示来自数据源的 String 类型的给定值不能转换为指定目标列的类型 int
-----解决方案--------------------
SqlBulkCopy不是根据表的ColumnName来匹配的,而是根据ColumnIndex匹配,
也就是说你的表 字段必须跟数据库的表字段完全一致(Index的排序要跟数据表的一样)。
就算你该字段不打算给他插入值,也要建个DataColumn。包括自增ID.不需要给他值就好了