Web sitemize bir sürü veri aktarmak için SqlBulkCopy kullanmaya çalışıyorum. Diğer alanların çoğunda, SQL'de ikili verileri temsil etmek için bayt dizilerini kullanan Varlık modelini kullanıyoruz. Ancak, SqlBulkCopy dizgeyle bayt [] karıştırıyor gibi görünüyor. Her şey bir istisna atar bir ikili sütun dışında her şey çalışıyor gibi görünüyor: "Veri kaynağından tür dize verilen değeri belirtilen hedef sütunun ikili türüne dönüştürülemez." Bu Data
adlı tek binary(5)
sütunu olan bir BinaryData
tabloya sahip bir test veritabanını kullanırSqlBulkCopy'yi bir DataTable'da ikili verilerle (bayt []) nasıl kullanabilirim?
using System.Data;
using System.Data.SqlClient;
namespace SqlBulkCopyTest
{
class Program
{
static void Main(string[] args)
{
DataTable table = new DataTable("BinaryData");
table.Columns.Add("Data");
for (int i = 0; i < 10; i++)
{
var row = table.NewRow();
row["Data"] = new byte[5] { 1, 2, 3, 4, 5 };
table.Rows.Add(row);
}
using (var connection =
new SqlConnection("Data Source=localhost\\sqlexpress;Initial Catalog=TestBulkCopy;Integrated Security=True"))
{
connection.Open();
using (var copier = new SqlBulkCopy(connection))
{
copier.DestinationTableName = table.TableName;
/* EXCEPTION HERE: */ copier.WriteToServer(table);
}
}
}
}
}
:
Sorunu göstermek için küçük bir test vakası oluşturduk.
Herhangi bir yardım büyük Yerine