c# 用SqlBulkCopy将datatable中的数据批量导入sql时,SqlBulkCopy.DestinationTableName=“表名”,表名为Data时好使,表名改成“0805”这种数字的就不好使了。
using (SqlBulkCopy sqlBC = new SqlBulkCopy(conn))
{
sqlBC.DestinationTableName = “0809”;
sqlBC.WriteToServer(dt);
sqlBC.Close();
}
using (SqlBulkCopy sqlBC = new SqlBulkCopy(conn))
{
sqlBC.DestinationTableName = “0809”;
sqlBC.WriteToServer(dt);
sqlBC.Close();
}
解决方案
5
表名的首个字符必须是字母,其余的可以是数字。
例如:T1 T2 T3 。
例如:T1 T2 T3 。
5
说的很清楚了 表名首位必须是字母 还有确认你的表名在数据库是不是存在的 有时候大小写的确很致命
10
表名是可以用数字的, 表中假如有”/” , 或 表名是数字”123456″,
那么你的代码sqlBC.DestinationTableName = “0809”; 这里需要加[],例如
sqlBC.DestinationTableName = "[0809]";
这样就可以了