这是我的代码,
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数据库中保存的数字一样,但我遇到了错误。
以下是错误的屏幕截图:
答案 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;