Code Bye

c# 用SqlBulkCopy将datatable中的数据批量导入sql,sql表名不能是数字吗

c# 用SqlBulkCopy将datatable中的数据批量导入sql时,SqlBulkCopy.DestinationTableName=“表名”,表名为Data时好使,表名改成“0805”这种数字的就不好使了。
using (SqlBulkCopy sqlBC = new SqlBulkCopy(conn))
{
sqlBC.DestinationTableName = “0809”;
sqlBC.WriteToServer(dt);
sqlBC.Close();
}
解决方案

5

表名的首个字符必须是字母,其余的可以是数字。
例如:T1     T2     T3   。

5

说的很清楚了   表名首位必须是字母  还有确认你的表名在数据库是不是存在的  有时候大小写的确很致命

10

引用:

有‘/’也是不可以的吗?本人把表名改成 ”D2016/8/9”,也是无法访问。
还有之前看错了,是在sqlBC.WriteToServer(dt);这句报的错,无法访问目标表,dt是本人的DateTable数据源

表名是可以用数字的, 表中假如有”/” , 或 表名是数字”123456″,
那么你的代码sqlBC.DestinationTableName = “0809”; 这里需要加[],例如

sqlBC.DestinationTableName = "[0809]";

这样就可以了


CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明c# 用SqlBulkCopy将datatable中的数据批量导入sql,sql表名不能是数字吗