Я хочу отправить байты в наборе данных, и у меня есть столбец типа данных varbinary (MAX). Когда я пытаюсь отправить массив байтов, вместо отображения массива байтов в наборе данных он отображает приведенные ниже данные. Я не знаю, является ли это чистым байтовым массивом или показывает байты. То, о чем я думал, столбец "ProjectIcons" должно возвращать значение, подобное {bytes [1305]}....
1) Если это байты, то как я могу прочитать байты из набора данных.
Пожалуйста, дайте мне знать, где я ошибаюсь. Я использую код ниже:
public DataSet GetAllProjectStandardIcons2()
{
var images = (from p in dbModel.tbl_STANDARDPROJECTICONS select new ProjectDetails1
{
id = p.id,
ProjectIcons = (Byte[])(p.ProjectIcons)
}).ToList();
DataTable dt = new DataTable();
if (images.Count > 0)
{
Byte[] ProjectIcons;
DataColumn dc = new DataColumn("id");
DataColumn dc1 = new DataColumn("ProjectIcons");
dt.Columns.Add(dc);
dt.Columns.Add(dc1);
for (var i = 0; i < images.Count(); i++)
{
DataRow row = dt.NewRow();
row["id"] = images[i].id;
ProjectIcons = (Byte[])images[i].ProjectIcons;
row["ProjectIcons"] = ProjectIcons;
dt.Rows.Add(row);
}
}
DataSet ds = new DataSet();
ds.Tables.Add(dt);
return ds;
}
попробуйте сохранить изображение в формате Base64 и получить в том же формате, после чего попробуйте преобразовать его в байты... попробуйте следующий код
for (var i = 0; i < images.Count(); i++)
{
DataRow row = dt.NewRow();
row["id"] = images[i].id;
row["ProjectIcons"] = Convert.ToBase64String(images[i].ProjectIcons);//convert here byte array to base64
dt.Rows.Add(row);
}
Я нашел решение Необходимость конвертировать bytearray в base64 массив ниже - это код, который работает для меня
public DataSet GetAllProjectStandardIcons2()
{
var images = (from p in dbModel.tbl_STANDARDPROJECTICONS
select new ProjectDetails1
{
id = p.id,
ProjectIcons = (Byte[])(p.ProjectIcons)
}).ToList();
DataTable dt = new DataTable();
if (images.Count > 0)
{
Byte[] ProjectIcons;
DataColumn dc = new DataColumn("id");
DataColumn dc1 = new DataColumn("ProjectIcons");
dt.Columns.Add(dc);
dt.Columns.Add(dc1);
for (var i = 0; i < images.Count(); i++)
{
DataRow row = dt.NewRow();
row["id"] = images[i].id;
row["ProjectIcons"] = Convert.ToBase64String(images[i].ProjectIcons);//convert here byte array to base64
dt.Rows.Add(row);
}
}
DataSet ds = new DataSet();
ds.Tables.Add(dt);
return ds;
}