Insert   zodpovězená otázka

ASP.NET WebForms, .NET

Zdravím,

omlouvám se asi za trapnou otázku, ale jsem začátečník tak vše zkouším, každou chvilku narazím na problém a potom si nevím rady.

Abych popsal problém.

Mám databázi, v ní dvě tabulky, které jsou propojené pomocí ID_Zakaznici.

1 tabulka zákazníci

2 tabulka kontaktní osoby

Když si kliknu na zákazníka podle toho se mi vygeneruje FormView s tabulkou kontaktních osob, kde mám update, delete a new. Update i delete funguje bez problémů, ale když chci zadat novou kontaktní osobu musím zadat i ID podle, kterého se kontaktní osoba přiřadí ke správnému zákazníkovi. Já bych chtěl, aby se ID přiřadilo automaticky (nevím prostě jak či kde převzít tu hodnotu zákazníka). Nechce se mi vždy vyplňovat ID a zjištovat, jaké ID má zákazník ke kterému přiřazuji.

Snad jsem to popsal srozumitelně.

Díky

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

Tak si do FormView přidejte třeba DropDownList ve kterém budou vylistovány všichni zákazníci.Dle vybraného zákazníka se doplní Insert o jeho ID.

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

Díky, funguje:))).

Jen mě napadlo nejde to nějak lépe. Sice jsem začátečník, ale zdá se mi, že takhle znova musím načítat všechna data. Nejde předat nějak přímo tu hodnotu, protože už jednou musela být načtena pro zobrazení.

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

To by samozřejmě šlo.musel byste upravit Select dotaz,který vytahuje jednotlivé pracovníky patřící k danému zákazníkovy.Použít join a udělat tak select ze dvou tabulek

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

No takhle to právě nemyslím. Veškeré přenosy či přepínání zajišťuje přece JScript (např. update, delete...nemusím znova načítat databazy)..nebo se mýlím???

Přece když kliknu na update, tak jsou všechny hodnoty načteny (i je měnit můžu..kdybych potřeboval)vše dělám ve FormView..takže hodnotu předává JScript(teda alespoň si myslím, že jsem to někde četl)..stránka se nepřipojuje znova k databázi ne?

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

Ještě mě napadlo převzít hodnotu přímo takto:

<% Dim A = Request.QueryString("Id")%>

<% =A%>...jenom vizuálně kontroluju správnou hodnotu

Ale jak jí dostanu sem:

<asp:TextBox ID="ID_ZakaznikaTextBox" runat="server"

Text=' ???????? ' ontextchanged="ID_ZakaznikaTextBox_TextChanged3" />

Nevím jestli to takhle jde, ale myslím, že ano. Jen nevím jaká je teď správná syntaxe zápisu. Jestli mi může někdo poradit či jen nasměrovat na nějaké stránky kde by byli správné zápisy v asp.net (myslím tím kde použít správný znak)

Díky za radu

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

Přenosy ani přepínání, ať už tím myslíte cokoliv, nezajišťuje JScript.

Javascript generovaný ASP.NET jen umožňuje napříkald odeslat formulář pomocí odkazu, což v HTML samotném nejde, dělá validace údajů na klientovi, pokud použijete validátory atd.

O samotné přenášení dat nebo přepínání režimů FormView se samozřejmě nestará.

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

Můžete to, prosím, zkusit ještě blíže popsat? Nějak nechápu, o co se přesně snažíte.

Jakou máte mezi tabulkami zákazníků a kontaktních osob vazbu? 1:N? Jeden zákazník může mít víc kontaktních osob?

Formulář, o kterém se bavíme a kde vám nefunguje to přidávání, se týká zákazníka nebo kontaktní osoby?

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

Ano jedná se o vazbu 1:N. Jeden zákazník může mít více kontaktních osob.

Formulář nefunguje u kontaktní osoby. Update a delete funguje bez problémově (změnil jsem si i automatické vygenerové FormView, např. u Update kde ID_Zakaznika Visual vygeneroval texbox..já jsem si dal Label, aby se nedal změnit)..toto funguje

Když použiji DropDownList tak vše funguje, ale tohle řešení se mi nelíbí. Když si představím, že bych měl třeba 1000 zákazníků, tak nemohu prohledat celý seznam (určitě se to takhle neprogramuje)

Proto jsem si myslel, že lze do

<asp:TextBox ID="ID_ZakaznikaTextBox" runat="server"

Text=' ???????? ' ontextchanged="ID_ZakaznikaTextBox_TextChanged3" />

místo ?????...vložit mou proměnou, ale nevím jestli je to možné a pokud ano, jaká je správná syntaxe zápisu (zkoušel jsem různé zápisy, ale protože nevím kde naleznu správný zápis, tak to byli jen pokusy :( )

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

Tak už jsem to vyřešil. Do Insertu předávám ID přímo z QueryStringu.

Jen nevím jestli je toto správné po programátorské stránce.

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

Ano, takhle se to běžně dělá.

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