Ošetření součtem před zápisem do SQL DB   zodpovězená otázka

ASP.NET WebForms, Databáze

Zdravím vespolek,

jsem zde nový a to jak na fóru, tak programování v ASP.NET, proto prosím omluvte případné nedostatky :-)

Potřebuji ošetřit formulář tak, aby uživatelé, kteří se zapisují dali v součtu 100%. (jedná se o rozdělení celku, například Pepa 25%, Franta 75%). Jedná se o zápis v danou chvíli oběma, tzn. že jsou u PC oba a domluví se na rozložení procent.

Vzhledem k tomu, že uživatelé nebudou vždy 2, nejde toto ošetřit předem daným počtem buněk.

Proto jsem chtěl použít postupné přidávání záznamů do DB, s tím, že budu před zápisem kontrolovat součet.

Tzn. políčko jméno, políčko procenta, tlačítko zapiš, pod tím GridWiev se seznamem zapsaných lidí.

Nevím však jak ošetřit právě těch 100%. Napadly mě tyto možnosti:

1.Zkoušel jsem to pomocí Stored Procedure, to se mi však nedaří.

2.Nevím zda a jak mohu pomocí kódu, vyčíst z GridWiev jednotlivé záznamy a následně to ošetřit před zápisem.

Za každý Váš nápad a čas předem děkuji

S pozdravem Karel Láska

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

Já osobně bych to řešil právě Stored procedurou,v rámci které bych si někam ukládal a updatoval aktuální stav daného "objektu".Toto není ani tak záležitost asp.net

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

Zdravím, díky za reakci...

Přikládám proceduru kterou jsem vytvořil, prosím, mohl by někdo kouknout co s ní?

Nekontroluje mi horní hranici :-(

ALTER PROCEDURE dbo.StoredProcedureIncludeGroup

@PercentOf tinyint,

@Group varchar(15),

@SUMPercent tinyint,

@IDNumber varchar(15)

AS

set @SUMPercent = (SELECT SUM(Percent) AS SUMPercent FROM TableGroup WHERE (Group = @Group))

IF ( @SUMPercent < 100) BEGIN

IF ( @SUMPercent + @Percent <= 100) BEGIN

INSERT INTO TableGroup(Group, IDNumber, Percent) VALUES (@Group, @IDNumber, @Percent)

END ELSE BEGIN

INSERT INTO TableGroup(Group, IDNumber, Percent) VALUES (@Group, @IDNumber, 100-@SUMPercent)

END

END

RETURN

S díky Karel

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

Zdravím všechny, kteří to budou číst :-)

Odpovídám sám sobě, neb jsem to konečně rozlouskl a třeba bude někdo kdo to využije.

Celý problém byl nejen v tom že jsem si ze začátku nehlídal NULL, ale také v podmínkách.

Přikládám kód a prosím o označuji jako uzavřené téma :-)

ALTER PROCEDURE dbo.StoredProcedureIncludeGroup

@Percent tinyint,

@Groups varchar(15),

@SUMPercent tinyint,

@IDNumber varchar(15)

AS

set @SUMPercent = (SELECT SUM(Percent) AS SUMPercent FROM TableGroups WHERE (Groups = @Groups))

IF @SUMPercent is null or @SUMPercent < 100 BEGIN

IF (@SUMPercent + @Percent) >100 BEGIN

INSERT INTO TableGroups(Groups, IDNumber, Percent) VALUES (@Groups, @IDNumber, 100 - @SUMPercent )

END ELSE BEGIN

INSERT INTO TableGroups(Groups, IDNumber, Percent) VALUES (@Groups, @IDNumber, @Percent )

END

END

RETURN

S pozdravem Karel

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