我使用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不显示结果
答案 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;
祝你好运。