如何解决“无法将'system.data.datacolumn'转换为'byte []'”?

时间:2019-10-30 17:36:20

标签: c# sql windows-forms-designer

因此,我试图在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。

1 个答案:

答案 0 :(得分:0)

byte []数组= dataset_Image.Tables [0] .Rows [0] .Field(0);最后的0表示您要访问的列(@Çöđěxěŕ提供的解决方案)。