使用 C#、.net 4、Visual Studio 2010 和 SQL Server 2008。
我目前有一个名为NewPeriodPareto
包含以下列的表:
- PG nvarchar(50)
- 部分 nvarchar(50)
- 销售浮动
- LostSales 浮动
- 帕累托6整数
- p6 图像
- Pareto5 整数
- p5 图像
- Pareto4 整数
- p4 图像
- Pareto3 整数
- p3 图像
- 当前帕累托整数
- p新建图像
- 新帕累托整数
以下是我尝试填写表格的代码:
private void CreateNewPeriod()
{
DataSet dsDG = new DataSet();
DataTable dt = new DataTable();
dsDG = (DataSet)ParetoGrid.DataSource;
dt = dsDG.Tables[0];
string ThetableName = "NewPeriodPareto";
BulkInsertDataTable(myConn, ThetableName, dt);
}
public static void BulkInsertDataTable(string connectionString, string tableName, DataTable table)
{
using (SqlConnection connection = new SqlConnection(connectionString))
{
SqlBulkCopy bulkCopy =
new SqlBulkCopy
(
connection,
SqlBulkCopyOptions.TableLock |
SqlBulkCopyOptions.FireTriggers |
SqlBulkCopyOptions.UseInternalTransaction,
null
);
bulkCopy.DestinationTableName = tableName;
connection.Open();
bulkCopy.WriteToServer(table);
connection.Close();
}
}
如您所见,提供的代码尝试从我的数据表中复制数据。数据表绑定到我的数据网格源。
以下是我得到的错误:
@bulkCopy.WriteToServer(table);
来自数据源的 Int32 类型的给定值无法转换为指定目标列的类型图像。
现在我想到的第一件事是我的SQL表的一个字段中的类型设置错误,但经过多次检查,似乎没有任何问题。
所以我追求的是这个小问题的解决方案,甚至是实现相同目标的替代/更简单的方法,即从程序 DataTable 填充 SQL 表。