Поэтому я пытаюсь показать изображение с моего SQL-сервера в PictureBox, но когда я пытаюсь преобразовать system.data.datacolumn в байт [], я получаю следующую ошибку: «Не удается преобразовать» system.data. столбец данных 'to' byte [] '". Я 2 часа искал способ ее решения, но ничего не нашел, надеюсь, вы мне поможете:).
В моем коде много разных классов, поэтому я попытаюсь объяснить это какхорошо, насколько это возможно.
// you have the "herramientas" method bellow, is where I make the connection.
DataSet dataSet = Biblioteca.Herramientas(string.Format("SELECT * FROM Producto"));
//The next two lines select one row from the table "Image" where the image is stored
int id_image = Convert.ToInt16(dataSet.Tables[0].Rows[contador]["id_Image"]);
DataSet dataset_Image = Biblioteca.Herramientas(string.Format("SELECT * FROM Image WHERE id_Image = "+ id_image));
//**here I have the problem**
byte[] array = (byte[])dataset_Image.Tables[0].Columns["image"];
// It let me convert it to string
dataset_Image.Tables[0].columns["image"].tostring();
Это метод, в котором я устанавливаю соединение, он не очень актуален, но, может быть, он вам полезен
public static DataSet Herramientas (string cdm)
{
SqlConnection connection = new SqlConnection("Data Source=.;Initial Catalog=PracticaSQL;Integrated Security=True");
DataSet dataSet = new DataSet();
SqlDataAdapter adapter = new SqlDataAdapter(cdm, connection);
adapter.Fill(dataSet);
connection.Close();
return dataSet;
}
И, наконец, так я добавляю картинки в свойтаблица в sql
--the "image" column in the table "Image" is not an image datatype, but varbinary(MAX)
insert into Image select * from openrowset (bulk 'here goes the image directory', single_blob) as image
И это весь код, я надеюсь, что решение не слишком сложно, и если вам нужно что-то еще, просто спросите его. Спасибо всем за потраченное время, надеюсь, вам удачного дня: D.