如何在datagridview中检索图像?

时间:2016-04-03 21:46:49

标签: c# sql-server datagridview

这是我的代码,

string constring = @"Data Source=MUZAFFAR_ALI801\SQLSERVER;Initial Catalog=imageform;Integrated Security=True;";
SqlConnection condatabase = new SqlConnection(constring);
SqlCommand sc = new SqlCommand(@"SELECT id, Source, Channel, Category, Image, url, Keyword1, Keyword2, Keyword3
                                            FROM Uploads", condatabase);

        try
        {

            SqlDataAdapter sda = new SqlDataAdapter();
            sda.SelectCommand = sc;
            DataTable dt = new DataTable();
            sda.Fill(dt);
            BindingSource bSource = new BindingSource();

            bSource.DataSource = dt;
            dataGridView1.DataSource = bSource;
            sda.Update(dt);
        }

        catch (Exception ex)
        {
            MessageBox.Show(ex.Message);
        }

我有一个带有image列的数据库。我想在datagridview中检索图像,就像我在SQL数据库中保存的数字一样,但我遇到了错误。

以下是错误的屏幕截图:

enter image description here

1 个答案:

答案 0 :(得分:-1)

不确定您使用DataAdapter的直接填充方法,但我在检查错误快照后尝试了它,但它确实有效。

第1步

在win表单上插入datagridview。

第2步

使用以下代码检索每个对象的图像(以二进制转换图像是此处的关键,然后将其附加到datasource / bindingsource)。

代码:

for (int i = 0; i < ObjectList.Count; i++)
{
    try
    {
        Image img = //Get your image;
        Byte[] result = (Byte[])new ImageConverter().ConvertTo(img, typeof(Byte[]));
        Object.Image = result;
    }
    catch
    { }
}

bindingSource1.DataSource = objectList;
dataGridView1.DataSource = bindingSource1;