我正在C#中编写一个函数来创建多个Datatables并将它们插入到数据集中,然后使用SQLBulkCopy将每个Datatable插入到Sql Server数据库中。我收到此错误消息: SQL Server批量插入转换失败
异常发生在列isBuget,这是有点。给定的值是String类型?我清楚地看到在我添加的行中有0个。 //创建铰刀表
DataTable dtreamer = new DataTable();
dtreamer.Columns.Add("quoteID");
dtreamer.Columns.Add("line");
dtreamer.Columns.Add("customer");
dtreamer.Columns.Add("salesman");
dtreamer.Columns.Add("quoteDesc");
dtreamer.Columns.Add("machineModel");
dtreamer.Columns.Add("machineDesc");
dtreamer.Columns.Add("isBudgetary");
dtreamer.Columns.Add("quoteDate");
dtreamer.Columns.Add("notes");
dtreamer.Columns.Add("userName");
dtreamer.Rows.Add(2016099, "Raise bore", "c", "sales", "desc",
"machineModel", "machineDesc", 0, "01/01/2000", "notes","userName");
我没有看到任何转换。调试器击中SQLBulkCopy的“WriteToServer”方法。
//create data set to hold tables
DataSet set = new DataSet();
set.Tables.Add(dtreamer);
set.Tables.Add(dtlineitems);
set.Tables.Add(dtcountries);
set.Tables.Add(dtdiameters);
try
{
using (SqlConnection conn = new SqlConnection(connectionString))
{
using (SqlBulkCopy copy = new SqlBulkCopy(conn))
{
conn.Open();
copy.DestinationTableName = "Reamers";
copy.WriteToServer(dtreamer);
我见0,不是“0”int Rows.Add方法。你在哪里看到一个字符串?我错过了什么? – dachizzle37
你没有分配'SqlBulkCopy.ColumnMappings'。如果您不这样做,SQL Server会假定您将按表格顺序提供表中的所有列。它将*不*自动根据名称映射列。首先将所有使用的列添加到列映射中。 –