VeriTable'ı bir saklı yordama parametresi olarak kullanmak için bu yöntemi yeniden kullanıyorum ve harika çalışıyor.DataTable saklı bir yordamın parametresi olarak bir bayt [] alanı ile
using (dbEntities dbe = new dbEntities())
{
var dt = new dataTable();
dt.Columns.Add("ID");
dt.Columns.Add("Message");
dt.Columns.Add("CreatedOn", typeof(DateTime));
foreach (var row in randomDataSource)
{
dt.Rows.Add(
row.id,
row.message,
DateTime.Now
);
}
var tableType = new SqlParameter("tableType", SqlDbType.Structured);
tableType.Value = dt;
tableType.TypeName = "[dbo].[RandomTableType]";
dbe.ExecuteStoreCommand(
"EXEC [dbo].[SaveTable] @tableType",
new object[] { tableType }
);
}
eklemek istiyorum alan bir ikili Çeşidi olduğunda ortaya çıkmaktadır: Bu basitleştirilmiş çalışma kodudur. yani .:
dt.Columns.Add("BinaryMessage", typeof(byte[]));
veritabanında karşılık gelen sütun arada varbinary(MAX)
olup.
Implicit conversion from data type nvarchar(max) to varbinary(max) is not allowed. Use the CONVERT function to run this query.
nasıl bu işi yapmak için ne değiştiririm: Bu çalıştırmayı denediğinizde, bu hatayı alıyorum?
bildiğiniz gibi, byte [] bir veri türü değil, –
yerine byte kullanın Ama bir dizi bir veri türüdür ... – kei