30. januar 2007 - 10:24Der 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. ~>:[
"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å.
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 ?
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
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
Synes godt om
Ny brugerNybegynder
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.