ASP.NET - scénář webové aplikace   otázka

ASP.NET WebForms, Databáze

Dobrý den,

měl bych následující dotaz na který nevím jak na to. Vyřešeno to mám v MS Access, ale chtěl bych přejít na ASP.NET (MS SQL) aplikaci.

Mám dvě tabulky, tblSuroviny a tblSurovinyNamer.

V tabulce tblSuroviny eviduji názvy surovin a jejich chemické specifikace. Například surovina XXX má chemickou specifikaci pro uhlík: C_min = 1, C_max = 5 a pro mangan: Mn_min = 3, Mn_max = 6 (min a max jsou hodnoty pro minimální a maximální možné (hodnoty).

ID_surovin (string)- jedinečné

C_min (double)

C_max (double)

Mn_min (double)

Mn_max (double)

V tabulce tblSurovinyNamer eviduji naměřené skutečné výsledky pro konkrétní vzorky surovin. Tabulka obsahuje informace o datu provedení zkoušky, číslo vzorku, název suroviny a naměřené výsledky chemie suroviny.

ID_Vzorek (integer) - jedinečné

ID_Surovin (string)

Datum (datetime)

C (double)

Mn (double)

Mám tyto dvě tabulky spojené dotazem (pohledem) názvem suroviny a chtěl bych provádět update, insert ve FormView.

SELECT dbo.tblSurovinyNamer.Vzorek, dbo.tblsurovinyNamer.ID_surovin, dbo.tblSurovinyNamer.Datum, dbo.tblSurovinyNamer.C,

dbo.tblSurovinyNamer.Mn, dbo.tblSuroviny.C_mi, dbo.tblSuroviny.C_mx, dbo.tblSuroviny.Mn_mi, dbo.tblSuroviny.Mn_mx

FROM dbo.tblSurovinyNamer LEFT OUTER JOIN dbo.tblSuroviny ON dbo.tblSurovinyNamer.ID_surovin = dbo.tblSuroviny.ID_surovin

Pro update a insert bych použil dvě různé stránky, například SurovinaUpdate.aspx a SurovinaInsert.aspx, které bych vyvolával z GridView jako detail konkrétního záznamu (zkoušky).

V Accessu mám formulář s podkladovým zdrojem dat, který definuje právě dotaz spojujíci zmíněné dvě tabulky. Na formuláři mám umístěné všechny pole z dotazu. Pole ID_surovin vyplňuji na základě DropDownListu, kde vyberu surovinu a poté se mi automaticky ve formuláři předvyplní minimální a maximální meze chemických prvků. Poté zadávám konkrétní výsledky chemických prvků a kontroluji na min, max meze.

První problém je, že mi SQL server hlásí, že pohled nelze updatovat.

Můžete mi prosím poradit postup jakým lze tento scénář řešit v prostředí webové aplikace? Mám zkušenosti pouze s podobnými scénaři desktopových aplikací, zejména MS Access.

Děkuji za veškeré podněty, nápady a rady

Honza

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

Jediná dobrá rada je, začít se učit ASP.Net . Nejlépe pomocí videotutoriálů, které jsou volně dostupné na MSTV.cz. Bez základů nemá cenu začínat. Jakmile pochopíte základy, bude pro Vás tento úkol naprosto triviální.

Pro Vaše řešení by možná postačilo projít místní tutoriál, který má cca 4.díly...

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

Myslím, že základy mám, Mám vytvořený GridView, FormView pro detail záznamu také, ale nevím jakým způsobem resp jakou logiku použít prot tento scénář ve webové aplikaci. Nepožaduji žádná hotová řešení, ale spíš jaké jsou praktiky v ASP.NET aplikaci při řešení podobných scénářů. Děkuji.

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

Zdravim,

Nejjednodussi pro vas bude asi komponentna SqlDataSource.

http://msdn.microsoft.com/en-us/library/...

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

V tom případě ano, jak píše p.Brožek. Využijte například SqlDataSource komponentu. Pokud by Váš datový model měl být do budoucna robustnější či jiným způsobem složitější, je vhodnější zvolit některý z FW (EF nebo LINQ).

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

Diky za informace, ale ja měl na mysli spíše jaká praxe je při řešení takového scénáře obvyklá. Mám GridView, kde zobrazuji "hlavičkové" údaje a při kliknutí na detail skočím na stránku detailu (FormView) konkrétního záznamu. Ovšem, mám použít pro naplnění FormView a pro editaci a update SQLlDataAdapter a naplnit DataTable jejíž obsah potom zpětně zapíšu do databáze? Používat SqlDataSource tak jak se běžně používá k datovým ovládacím prvkům se mi zdá neprůchodné pro tuto věc, protože používám pohled ze dvou tabulek tak jak jsem popsal již výše. Jde mi jen o takovéto "postrčení" jakým způsobem se k tomu postavit. Ukázat cestu. Nepotřebuji ukazovat kód.

Děkuji

nahlásit spamnahlásit spam -1 / 1 odpovědětodpovědět

To, že jsou data ze dvou nebo více tabulek nijak nelimituje použití SqlDataSource, to je jen o úpravě SQL dotazu.

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

To je přece prosté, FormView jen navážete na SQLDataSource, přičemž SQL dotaz v něm bude mít i InsertCommand a UpdateCommand....

nahlásit spamnahlásit spam 1 / 1 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