Hey did some test(ie writing the binary returned from DB to File), I did some modifications to work it for all scenarios( ie check for any Image is Null):
private static void Search(int Regid)
{
SqlConnection con = new SqlConnection();
con.ConnectionString = "Data Source=RKUTHUPARA;Initial Catalog=Ops;Integrated Security=SSPI;Connect Timeout=60;";
SqlCommand cmd = new SqlCommand("ReadImage", con);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("@Regid", Regid);
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataSet dataSet = new DataSet();
da.Fill(dataSet);
con.Close();
if (dataSet.Tables[0].Rows.Count == 1)
{
Byte[] data = new Byte[0];
data = (Byte[])(dataSet.Tables[0].Rows[0]["Citizenimage"] is DBNull? null : dataSet.Tables[0].Rows[0]["Citizenimage"]);
if (data != null)
{
File.WriteAllBytes(@"C:\test\Images\DB" + Regid + ".1.png", data);
}
Byte[] data1 = new Byte[0];
data1 = (Byte[])(dataSet.Tables[0].Rows[0]["Otherimage"] is DBNull ? null : dataSet.Tables[0].Rows[0]["Otherimage"]);
if (data1 != null)
{
File.WriteAllBytes(@"C:\test\Images\DB" + Regid + ".2.png", data1);
}
Byte[] data2 = new Byte[2];
data2 = (Byte[])(dataSet.Tables[0].Rows[0]["Othersimage"] is DBNull ? null : dataSet.Tables[0].Rows[0]["Othersimage"]);
if (data2 != null)
{
File.WriteAllBytes(@"C:\test\Images\DB" + Regid + ".3.png", data2);
}
}
}
So you can try now, also request you flush memorystream before using it.
like :
if (data != null)
{
MemoryStream mem = new MemoryStream(data);
mem.Flush();
PbCitizen.Image = Bitmap.FromStream(mem);
}