Avatar billede Slettet bruger
30. januar 2007 - 10:24 Der er 10 kommentarer og
1 løsning

Navngiv en mappe udfra id i databasen

void FolderCreator (Object sender, System.EventArgs e) {
    OleDbConnection OurConnection;
    OurConnection = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+Server.MapPath("../db/content.mdb")+";");
    OleDbCommand OurCommand;
    OurCommand = new OleDbCommand();
      OurCommand.CommandText = "SELECT TOP 1 id FROM opskrifter ORDER BY id DESC";
    OurCommand.Connection = OurConnection;
    OurConnection.Open();
    OurCommand.ExecuteNonQuery();
        OleDbDataReader dbFolderCreator;
    dbFolderCreator = OurCommand.ExecuteReader(CommandBehavior.CloseConnection);   
    dbFolderCreator.Read();
    string dirName = Server.MapPath("../");
    dirName  = Path.Combine(dirName, dbFolderCreator.GetInt32(0).ToString());
    System.IO.Directory.CreateDirectory(dirName);
}

Dette lille script krerer en mappe på serveren og navngiver den efter det sidste id i databasen.
Dette er i midlertidig ikke så smart eftersom at den nye mappe så får sit id fra det sidste indlæg i databasen. Dét jeg ønsker der skal ske er at mappen navngives efter id'et + 1 således at mappens navn stemmer overens ved det indlæg som indsættes i databasen efter mappens oprettelse. Jeg har forsøgt mig med indtil flere metoder men alt er gået i "ged" for mig indtil nu.
~>:[
Avatar billede kalp Novice
30. januar 2007 - 10:25 #1
System.IO.Directory.CreateDirectory(Convert.ToString(Convert.ToInt32(dirName)+1));
Avatar billede flyver23 Nybegynder
30. januar 2007 - 10:26 #2
(dbFolderCreator.GetInt32(0)+1).ToString());
Avatar billede kalp Novice
30. januar 2007 - 10:26 #3
burde virke.
Avatar billede Slettet bruger
30. januar 2007 - 11:21 #4
Desværre kalp - det blev flyver der løb af med sejren, han eksempel var dén der virkede...
smid et svar flyver...
Avatar billede erikjacobsen Ekspert
30. januar 2007 - 11:24 #5
"stemmer overens ved det indlæg som indsættes i databasen efter mappens oprettelse" ... det kan du kun regne med hvis det er et et-brugersystem. Er det et flerbrugersystem kan du risikere at der lagt et indlæg ind i den tid der går fra du laver din "TOP 1" til du laver din INSERT.

Den eneste måde at gøre det rigtigt på ved flere brugere (og man kan li'så godt også ved 1 bruger) er at lave den INSERT, og så aflæse "identity"-kolonnen bagefter. Så kan man få et tal, man kan stole på.
Avatar billede kalp Novice
30. januar 2007 - 11:40 #6
fair nok..

dog virker det.. at det ikke virker hos dig forstår jeg ikke.
Der skal selvfølgelig stå using System; i toppen men går jeg også ud fra der er.
Avatar billede flyver23 Nybegynder
30. januar 2007 - 11:49 #7
Ja, det er rigtigt at der "kan" forekomme fejl i din løsning..
Tak for point.

Vh FLyver23
www.terningspil.dk
Avatar billede snowball Novice
30. januar 2007 - 22:05 #8
flyver23: Husk venligst at det ikke er tilladt at linke til sin hjemmeside som en del af sin signatur :)

Snowball / CoAdmin
Avatar billede arne_v Ekspert
31. januar 2007 - 02:42 #9
kalp>

    string dirName = Server.MapPath("../");  // dirName er nu C:\foobar
    dirName  = Path.Combine(dirName, dbFolderCreator.GetInt32(0).ToString()); // dirName er nu C:\foobar\777

hvor er det at Convert.ToInt32(dirName) virker henne ?
Avatar billede kalp Novice
31. januar 2007 - 10:19 #10
hvad tænker du helt på arne? hvis nedenstående bliver skrevet så vil jeg da mene at det skulle virke.
Jeg har ikke testet, men når man først konvertere til int og bagefter til string så burde det vel virke

dirName  = Path.Combine(dirName, Convert.ToString(Convert.ToInt32(dbFolderCreator.GetInt32(0).ToString())+1));
Avatar billede arne_v Ekspert
01. februar 2007 - 01:23 #11
den kode snippet er jo ikke den samme som det du postede 30/01-2007 10:25:46 og som
spørger ikke kunne få til at virke
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