因此,我试图在PictureBox中显示来自SQL Server的图像,但是当我尝试将system.data.datacolumn转换为字节[]时,出现以下错误:“无法转换'system.data。 datacolumn'到'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。
答案 0 :(得分:0)
byte []数组= dataset_Image.Tables [0] .Rows [0] .Field(0);最后的0表示您要访问的列(@Çöđěxěŕ提供的解决方案)。