ID budoucího uživatele   zodpovězená otázka

ASP.NET WebForms, Databáze

Zdravím, měl bych otázku, lze nějak zjistit ID uživatele, který se teprve vytvoří pomocí CreateUSERWisard?

Upřesním problém, mám na stránce vytvořen CreateUserWisard pro registraci nového uživatele. Po kliknutí na tlačítko "Registrovat" se vykonají nějaké SQL dotazy již ale s ID nového uživatele. Chtěl bych se zeptat, zda se to ID dá nějak sehnat. Zatím to řeším tak, že si s tabulky uživatelů vytáhnu posledního a k jeho přičtu jedničku. Díky

nahlásit spamnahlásit spam 0 odpovědětodpovědět

To je IMHO velmi nevhodný způsob, uvedu příklad:

Zaregistruje se mi uživatel č. 1, dostane ID 1. Za chvíli se zaregistruje dvojka, dostane ID 2. Já ale zjistím, že dvojku nechci, tak ji smažu. Když se ale zaregistruje další osoba, dostane ID 3 (databáze si pamatuje ID naposledy přidaného záznamu a vždy ho zvýší o jedničku, očíslování záznamů tedy nemusí být souvislé). Vy se ale na trojku uvedeným postupem nedostanete, nejvyšší ID záznamu bylo 1, takže vám vyjde 2. Tyhle indexy zaručeně splňuji pouze jednu podmínku - každý záznam bude mít jiné číslo. Nic ale není řečeno o tom, jaké to číslo bude, nemůžete se spolehnout, že následující záznam dostane o 1 vyšší číslo než ten s nejvyšším ID.

Komponenta CreateUserWizard má událost CreatedUser, která se spustí ve chvíli, kdy je uživatel už v databázi vytvořen. Vy pak můžete vytvořit záznamy, které jsou na něj navázané vzdálenými klíči (přidávat záznamy před založením záznamu uživatele není vhodné, pokud máte tabulky provázané, což by měly být). Jméno uživatele zjistíte z CreateUserWizard1.UserName a podle toho si můžete vytáhnout z DB jeho ID.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Děkuji za velmi dobrou a rychlou odpověd. Zkusím to udělat přes tu událost CreateUser, to by mělo stačit.

Dále bych se chtěl zeptat, abych zde nezakládal nové téma, na ještě jeden dotaz.

Mám tento kód:

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        Dim connection As New SqlConnection(ConnectionString)
        Try
            connection.Open()
            Dim cmd As New SqlCommand("SELECT Title FROM  Rubriky WHERE  (RubrikaID = 1)", connection)
            Label1.Text = cmd.ExecuteScalar().ToString()
        Finally
            connection.Close()
        End Try
    End Sub

Při spuštění aplikace by mě to mělo vrátit název první rubriky, ale místo toho mi to vypíše chybové hlášení:

Řádek 7: Dim connection As New SqlConnection(ConnectionString)

Pročítal jsem i stopařův průvodce a myslím si, že ten řádek mám dobře. Můj ConnectionString ve web configu má název ConnectionString.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

A jakou chybovou hlášku dostáváte? Nepodtrhnulo vám některé slovo Visual Studio? Máte v proměnné ConnectionString hodnotu? Pokud chcete vytáhnout hodnotu connectionStringu s jménem ConnectionString z web.configu, musíte použít tohle:

ConfigurationManager.ConnectionStrings("název connection stringu").ConnectionString

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Supr, bylo to ono. Měl jsem špatně vytažený ConnectionString z Web Configu.

Díky moc.

nahlásit spamnahlásit spam 0 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:  
Heslo:  

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback