Avatar billede mema Nybegynder
31. maj 2006 - 12:03 Der er 3 kommentarer og
1 løsning

Filenavn i databasen efter uploading

Hej,
jeg har en formular som har 3 felter for uploading af billeder plus 2 tekst felter.
Uploading går fint, men i min kode (codebehind kommer om lidt) er der noget galt, som medfører, at filnavnet bliver skrevet fx 3 gange i databasen (Access), når jeg uploader 3 billeder. Jeg ved også at det er pga. fejl i lokken, men jeg kan ikke selv finde ud af at rette den og derfor har jeg brug for hjælp. Her kommer koden:
----
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.Data.OleDb;
using System.IO;
using System.IO.IsolatedStorage;

namespace EIS_test
{
/// Summary description for MultipleUpload.
public class MultipleUpload : System.Web.UI.Page
{
protected System.Web.UI.WebControls.Label ResultMsg;
protected System.Web.UI.WebControls.TextBox tNavn;
protected System.Web.UI.WebControls.TextBox tBeskriv;
protected System.Web.UI.HtmlControls.HtmlInputFile File1;
protected System.Web.UI.HtmlControls.HtmlInputFile File2;
protected System.Web.UI.HtmlControls.HtmlInputFile File3;
protected System.Web.UI.WebControls.Label lblHej;
protected System.Web.UI.HtmlControls.HtmlInputButton Submit1;
   
private void Page_Load(object sender, System.EventArgs e)
{
// Put user code to initialize the page here
}

protected void UploadMultipleFiles_Clicked(object Sender, EventArgs e)
{
string strResultMessage = "";
string strFileName = "";
string strFolderName = "" + MapPath("MultipleUpload/");
HttpPostedFile objFile;
int i;
try
{
for (i = 0; i <= Request.Files.Count - 1; i++)
{
objFile = Request.Files[i];
//hvis.....plus hvis filen er mindre end 500 KB
if (!(objFile == null | objFile.FileName == "" | objFile.ContentLength < 1 | objFile.ContentLength > 500000))
{                       
strFileName = objFile.FileName;
strFileName = DateTime.Now.ToString("yyyy.MM.dd-HHmmss")+"-" + Path.GetFileName(strFileName);
objFile.SaveAs(strFolderName + strFileName);
string strFullpath = "" + strFolderName + strFileName;
lblHej.Text = "Hej " + tNavn.Text + ":" + " Du har uploaded følgende billeder: ";
strResultMessage +=  strFileName.Substring(18) + " af type " + objFile.ContentType  + ", som fylder " + objFile.ContentLength/1024 + " KB" + "<br>";
string connStr = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" + MapPath("Data/XXX.mdb");
OleDbConnection myConnection = new OleDbConnection(connStr);
string strSQL = "INSERT INTO xxx(Navn, Beskriv, File1, File2, File3) Values (@tNavn,@tBeskriv,@File1,@File2,@File3)";
OleDbCommand cmdInsert = new OleDbCommand( strSQL, myConnection );   
cmdInsert.Parameters.Add( "@Navn", tNavn.Text );
cmdInsert.Parameters.Add( "@Beskriv", tBeskriv.Text );
cmdInsert.Parameters.Add( "@File1", strFullpath );
cmdInsert.Parameters.Add( "@File2", strFullpath );
cmdInsert.Parameters.Add( "@File3", strFullpath );
myConnection.Open();
cmdInsert.ExecuteNonQuery();
myConnection.Close();
}
}
if (strResultMessage == "")
{
strResultMessage = "<font color=red>" + "Der er sket en fejl ved uploadingsprocess." + "<br>" +
"Du har enten ikke valgt nogen fil til uploading, eller fil/filerne er størrer end 500 KB." + "</font>";   
}
}
catch (Exception errorVariable)
{
strResultMessage = "<font color=red>" + errorVariable.ToString() + "</font>";
}
finally
{
Submit1.Visible = false;
ResultMsg.Visible = true;
ResultMsg.Text = strResultMessage;
}
}

#region Web Form Designer generated code
override protected void OnInit(EventArgs e)
{
// CODEGEN: This call is required by the ASP.NET Web Form Designer.
InitializeComponent();
base.OnInit(e);
}
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
private void InitializeComponent()
{   
this.Load += new System.EventHandler(this.Page_Load);
}
#endregion
}
}
Avatar billede snepnet Nybegynder
31. maj 2006 - 20:06 #1
Har du prøvet at debugge - og checke hvad der sker? - måske du får kørt den metode flere gange.
Mvh
Avatar billede mema Nybegynder
01. juni 2006 - 09:32 #2
Hvordan debugger man egentlig? Er det sådan at man sætter den side som vil debugge som startside og så klikker man på trekanten? Lidt begynder spørgsmål :-)
Avatar billede snepnet Nybegynder
01. juni 2006 - 17:38 #3
Ja - det er noget i den stil.
Der hvor du vil følge din eksekvering fra, sætter du et breakpoint - hvilket du kan gøre med F9.... Så stil dig f.eks. på denne linie:
string strResultMessage = "";
Tryk på F9, og derefter på F5... Så stopper eksekveringen der, og så kan du steppe ned igennem din kode med F10 og F11
Mvh
Avatar billede mema Nybegynder
29. juli 2006 - 21:51 #4
Så lukker jeg.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester