如果没有进入路径,如何修复应包含图像的gridcontrol单元格?

时间:2016-12-15 19:35:48

标签: c# winforms devexpress

我使用devexpress gridcontrol创建了一个winform。该控件具有图像列。这没关系,但是当路径中没有图像时,gridcontrol无法显示查询结果。我该如何解决? 首先。我修改了这个函数来返回一个数据表:

public DataTable select_users_per_name(string name)
{
    DataTable dt = new DataTable();
    dt.Columns.Add("ID_US", typeof(int));
    dt.Columns.Add("NAME_US", typeof(string));
    dt.Columns.Add("PIC_US", typeof(Image));
    try
    {
        using (cnn = new OracleConnection(Properties.Settings.Default.cadcon_face))
        {
            cnn.Open();
            cmd = new OracleCommand("USERS.PROC_SELECT_USER_PER_NAME", cnn);
            cmd.CommandType = CommandType.StoredProcedure;
            cmd.Parameters.Add("REFCUR", OracleDbType.RefCursor, ParameterDirection.Output);
            cmd.Parameters.Add("NAMEUSER", OracleDbType.Varchar2, name, ParameterDirection.Input);
            dr = cmd.ExecuteReader();
            Image foto;
            while (dr.Read())
            {
                picture = Image.FromFile(Convert.ToString(dr["PIC_US"]));
                dt.Rows.Add(new object[] { Convert.ToInt32(dr["ID_US"]), Convert.ToString(dr["NAME_US"]), new Bitmap(picture, new Size(50, 50)) });
            }
            cnn.Close();
        }
    }
    catch (Exception ex)
    {
        record_log(ex.Message.ToString());
    }
    return dt;
}

将此代码放入winform后。

private void btnSearch_Click(object sender, EventArgs e)
{
    gridcontrolUser.DataSource = select_users_per_name(txtUserName.Text);
    gridviewUser.Columns["PIC_US"].ColumnEdit = new RepositoryItemPictureEdit();
}

我的数据库中的列表是PIC_US,它包含例如:D:\ img_pictures \ cont_3401418_n.jpg。当没有图像时出现问题。 gridcontrol不显示结果

1 个答案:

答案 0 :(得分:1)

尝试这样做:

try
{
    picture = Image.FromFile(Convert.ToString(dr["PIC_USUARIO"]));
    dt.Rows.Add(new object[] { Convert.ToInt32(dr["ID_US"]), Convert.ToString(dr["Name_US"]), new Bitmap(pocture, new Size(50, 50)) });
}
catch (FileNotFoundException)
{
    dt.Rows.Add(new object[] { Convert.ToInt32(dr["ID_US"]), Convert.ToString(dr["Name_US"]), null });
}

添加此库

using System.IO;

祝你好运。