Avatar billede hyperactive Nybegynder
29. december 2003 - 13:21 Der er 11 kommentarer og
1 løsning

Unik integer værdi for hver session

Jeg har et system, der bruger Guid.NewGuid() at lave en unik identifikation af en bruger...

Jeg har brug for en unik identifikation i form af en integer i stedet... Kan jeg enten konvertere Guid.NewGuid() til en integer, eller hvordan gør jeg???
Avatar billede christian Nybegynder
29. december 2003 - 13:25 #1
Denne lette måde vil være at bruge dato og tid
20031229132422
ååååmmddttmmss

eventuelt med et random nummer indsat et sted
Avatar billede lauge Nybegynder
29. december 2003 - 13:27 #2
du kan evt. fjerne bindestregerne i din GUID med replace funktionen.
Men alt efter hvormange brugere du har online, så var det måske bedre at lave en random funktion mellem 1 og 100.000 og så krydse fingre på at der ikke bliver 2 ens :-)
Avatar billede lauge Nybegynder
29. december 2003 - 13:27 #3
ja brug den ide christian kom med - den er bedre endnu!
Avatar billede hyperactive Nybegynder
29. december 2003 - 13:29 #4
Kan jeg få et kode eksempel (C#)?
Avatar billede arne_v Ekspert
29. december 2003 - 14:00 #5
Hvorfor ikke bare have en static counter ?
Avatar billede arne_v Ekspert
29. december 2003 - 14:05 #6
private static int counter = 0;
    private static Object mylock = new Object();
    public static int GetID()
    {
        int res;
        lock(mylock)
        {
            counter++;
            res = counter;
        }
        return res;
    }

og GetID returnerer unikke integers (unikke indenfor samme server indtil
restart af server !).
Avatar billede christian Nybegynder
29. december 2003 - 14:27 #7
kode eksempel:
<script language="C#" runat="server">
public void Page_Load(Object sender, EventArgs E) {

DateTime dtObj = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, DateTime.Now.Hour, DateTime.Now.Minute, DateTime.Now.Second);
Random randomNumber = new Random();
string str = dtObj.ToString("yyyyMMddHHmmss") + randomNumber.Next(9);
lab.Text = str;
</script>
<asp:label id="lab" Text="" runat="server" />
Avatar billede christian Nybegynder
29. december 2003 - 14:31 #8
Jeg ville nok ændrer
randomNumber.Next(9)
til
randomNumber.Next(10,99)
så det bliver mellem 10 og 99 og ikke kun 1 og 9
Avatar billede arne_v Ekspert
29. december 2003 - 14:39 #9
Øh - jeg troede at opgaven led på at det skulle være en int ??
Avatar billede roger Nybegynder
30. december 2003 - 20:23 #10
long id = DateTime.Now.ToFileTime();

Det er godt nok en int64, men ved ikke om det kan bruges ?
Avatar billede arnejan Nybegynder
06. januar 2004 - 02:06 #11
Det er dumt at bruge tid, den kan hurtigt gå hen at blive den samme, for to der åbner en side næsten samtidig.
Avatar billede arne_v Ekspert
23. januar 2004 - 22:34 #12
Lukke tid ?

(og et svar fordi jeg stadig synes at mit forslag matcher kravene godt)
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