[ west_herc @ 22.12.2006. 06:35 ] @
E ovako: U jednoj tabeli imam dvije kolone ID i recimo ime. ID je PK i on je auto increment. E sad kako da ja pročitam zadnji dodan broj ID, dakle koji se zadnji dodao u tablicu, ali samo ID, ne od imena, samo ID.
Inače koristim C# i MSSQL, preko table adaptera sa datasetom!

To mi treba da u text box dobijem zadnju vrijednost od ID-a. Jel to radim preko nekog SQL upita ili ... ?

Hvala
[ maksvel @ 22.12.2006. 07:00 ] @
Code:

//konekcija kon, query string sSQL1
SqlCommand komanda = new SqlCommand(sSQL1,kon);
        //ovde npr. dodaješ neke parametre i izvršavaš upit sSQL1
        komanda.Parameters.Clear();
        komanda.CommandText = "SELECT @@IDENTITY"; 
        int odgovorNID = Convert.ToInt32(komanda.ExecuteScalar()); //To je novi ID

[ west_herc @ 22.12.2006. 07:07 ] @
A d ali bi moglo sa ovim SQL izrazom:


SELECT MAX(id) as MaxVrijednost
FROM tablica


I textBox bindujem, fillujem gdje mi treba i to je to. Mogu komotno da koristim vrijednost iz TextBoxa gdje mi treba.
[ logic_rabbit @ 22.12.2006. 07:14 ] @
Netrebas postovati ako znas odgovor.
[ west_herc @ 22.12.2006. 07:21 ] @
Da ali jako sam ne siguran, u ovo što radim, uvijek mislim da može bolje i da ovo ne valja. :) Pa zato volim kad mi netko potvrdi.
[ Fedya @ 22.12.2006. 13:07 ] @
Sve zavisi sta radis. Ako radis windows aplikaciju koju ce koristiti jedan korisnik (tj. ako bazu ne deli vise korisnika) onda je to sa max prihvatljivo resenje (ili ovo resenje koje je ponudio maksvel, to je isto).
Sa druge strane, ako radis web aplikaciju koju ce koristiti vise korisnika, onda je to potpuno pogresno resenje (dva korisnika upisu podatke u isto vreme).
Bas za ovakve slucajeve postoji @@IDENTITY promenljiva u SQL-u. Ona ti vraca vrednost poslednje generisanog id-a. Uvek ga koristi tako sto ces u istom sql skriptu (storovanoj, skript u QA i sl.) procitati kao sledecu liniju posle insert-a. Samo tako si siguran da imas pravu vrednost.
[ negyxo @ 22.12.2006. 13:31 ] @
Mali time break

Citat:

Sve zavisi sta radis. Ako radis windows aplikaciju koju ce koristiti jedan korisnik (tj. ako bazu ne deli vise korisnika) onda je to sa max prihvatljivo resenje (ili ovo resenje koje je ponudio maksvel, to je isto).
Sa druge strane, ako radis web aplikaciju koju ce koristiti vise korisnika, onda je to potpuno pogresno resenje (dva korisnika upisu podatke u isto vreme).


Pa zbog toga bi trebao da koristi transakcije. Skoro sve operacije koje radi treba da budu u okviru transakcije, cak mozda za pocetak je i najbolje da koristi uvek transakcije osim ako nije samo jedan kveri u pitanju, tako ce manje pogresiti nego da ih ne koristi

Sto se tice @@IDENTITY, ako radi u SQL 2005 onda neka i njega zaobidje i neka koristi SCOPE_IDENTITY, sigurnije je.
[ Subgate @ 22.12.2006. 13:55 ] @

http://codebetter.com/blogs/jo...archive/2006/04/07/142503.aspx

imas tonu toga na netu i u dokumentaciji koja ide uz ms sql. Prijateljski savet... potrudi se bar malo pre nego sto postujes ovde ;-)