Использование C#, .net 4, Visual Studio 2010 и SQL Server 2008.
В настоящее время у меня есть таблица с именем NewPeriodPareto
, содержащая следующие столбцы:
- PG nvarchar(50)
- Часть nvarchar(50)
- Плавающий объем продаж
- Поплавок LostSales
- Парето6 инт
- изображение p6
- Парето5 инт
- изображение p5
- Парето4 внутр.
- изображение p4
- Парето3 инт
- изображение p3
- CurrentPareto int
- 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();
}
}
Как вы можете видеть, предоставленный код пытается скопировать данные из моей таблицы данных. Datatable привязан к источнику My data grids.
Я получаю следующую ошибку:
@bulkCopy.WriteToServer(table);
Заданное значение типа Int32 из источника данных не может быть преобразовано в изображение типа указанного целевого столбца.
Теперь первое, о чем я подумал, это то, что в одном из моих полей моей таблицы SQL был установлен неправильный тип, но после многократных проверок, похоже, все в порядке.
Итак, что мне нужно, так это решение этой небольшой проблемы или даже альтернативный/более простой способ достижения той же цели, то есть заполнить таблицу SQL из таблицы данных программ.