I'm sure this is a very simple issue that even inexperienced developers would be able to do, but I'm just starting out.
I've put an if statement round the logic to convert a jpeg into a byte array so that the conversion doesn't happen unless there is a file selected. But this makes the variable logoBytes invisible to the data parameter. A colleague told me I would have to put the logic for the conversion into a method, and then reference that method somewhere, but I'm still rather confused.
if (logoPrvw.Value != null)
{
System.Drawing.Image img = System.Drawing.Image.FromFile(logoPrvw.Value);
byte[] logoBytes;
using (MemoryStream ms = new MemoryStream())
{
img.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);
logoBytes = ms.ToArray();
}
}
TemplateData data = new TemplateData(txtSchemeCode.Text, txtVersion.Text, txtComment.Text, txtTemplateId.Text, logoBytes);
if (ddSchemeCode.SelectedIndex == 0)
{
lblCreated.Visible = true;
lblUpdated.Visible = false;
DataClass.addNewSchemeCode(data);
}
if (ddSchemeCode.SelectedIndex == 0 && ddVersion.SelectedIndex != 0)
{
lblCreated.Visible = true;
lblUpdated.Visible = false;
DataClass.addNewVersion(data);
}
if (ddSchemeCode.SelectedIndex != 0 && ddVersion.SelectedIndex == 0)
{
lblUpdated.Visible = true;
lblCreated.Visible = false;
DataClass.UpdateData(data);
}
Here is the TemplateData class
public class TemplateData
{
public byte[] Logo { get; set; }
public string TemplateId { get; set; }
public string SchemeCode { get; set; }
public string Version { get; set; }
public string Comment { get; set; }
public TemplateData(string schemeCode, string version, string comment, string templateID, byte[] logo)
{
SchemeCode = schemeCode;
Version = version;
Comment = comment;
TemplateId = templateID;
Logo = logo;
}
public TemplateData(SqlDataReader dr)
{
initialiseData();
if (dr.HasRows)
{
Version = dr["Version"].ToString();
Logo = (byte[])dr["Logo"];
TemplateId = dr["TemplateId"].ToString();
Comment = dr["Comment"].ToString();
SchemeCode = dr["SchemeCode"].ToString();
}
}
Aucun commentaire:
Enregistrer un commentaire