I need to upload an attachment to a MS Access .mdb, nonetheless, the code runs until the end, but nothing gets updated.
Reviewing the query syntax and checking the OleDbTypes that are used in the code.
protected void Button1_Click(object sender, EventArgs e)
{
mdlTrab mdl = new mdlTrab();
mdl.nome = txtNome.Text;
mdl.trab = titTrab.Text;
mdl.campo = FileUpload1.FileBytes;
if (FileUpload1.HasFile)
{
try
{
string fileExtension = Path.GetExtension(FileUpload1.FileName);
if (fileExtension.ToLower() == ".doc" || fileExtension.ToLower() == ".docx" || fileExtension.ToLower() == ".pdf")
{
if (FileUpload1.PostedFile.ContentLength > 1024000)
{
StatusLabel.ForeColor = System.Drawing.Color.Red;
StatusLabel.Text = "Status do upload: O arquivo deve ter menos de 1000 kb!";
}
else
{
string conexaoAccess = ConfigurationManager.ConnectionStrings["conexaoAccess"].ToString();
using (OleDbConnection conexaodb = new OleDbConnection(conexaoAccess))
{
conexaodb.Open();
OleDbCommand cmd = new OleDbCommand("UPDATE tbl_reg SET Campo1 = @campo, titulo_trab = @trab WHERE nome_user = @nome", conexaodb);
cmd.Parameters.Add("@campo", OleDbType.LongVarBinary).Value = mdl.campo;
cmd.Parameters.Add("@trab", OleDbType.LongVarChar).Value = mdl.trab;
cmd.Parameters.Add("@nome", OleDbType.LongVarChar).Value = mdl.nome;
int rowsChanged = cmd.ExecuteNonQuery();
StatusLabel.ForeColor = System.Drawing.Color.Green;
StatusLabel.Text = "Arquivo carregado!";
}
}
}
else
{
StatusLabel.ForeColor = System.Drawing.Color.Red;
StatusLabel.Text = "Status do upload: Somente arquivos .doc, .docx e .pdf são aceitos!";
}
}
catch (InvalidOperationException ex)
{
StatusLabel.ForeColor = System.Drawing.Color.Red;
StatusLabel.Text = "Status do upload: Erro ao carregar arquivo, ocorreu o seguinte erro: " + ex.Message;
}
catch (OleDbException ex)
{
StatusLabel.ForeColor = System.Drawing.Color.Red;
StatusLabel.Text = "Status do upload: Erro ao atualizar banco de dados, erro oorrido: " + ex.Message;
}
catch (Exception ex)
{
Console.WriteLine("Erro: ", ex.Message);
}
}
}
The Model
public class mdlTrab
{
public int codigo { get; set; }
public string nome { get; set; }
public string trab { get; set; }
public byte[] campo { get; set; }
}
Expected: Upload the file in the database. Actual results: no results