DataGridView ukazuje neaktální informace - prosím o radu   zodpovězená otázka

ASP.NET WebForms

Zdravím,

S ASP.NET a s webovými aplikacemi teprve začínám a nevím si rady s jedním pravděpodobně začátečnickým problémem. Údaje, které vyplní uživatel do formuláře ukládám jako nový řádek tabulky SQL příkazem INSERT, při stisknutí tlačítka. Navigate URL tohoto tlačítka je stejná stráka, která kromě formuláře pro zapsání dalších údajů obsahuje také DataGridView, v kterém již zapsaná data zobrazuji.

Problém je, že data v tomto ovládacím prvku neodpovídají datům zapsaných do databáze. Ty se mi totiž v DataGridView podaří zobrazit až za nějaký čas. Nevím, zda je tato kompomenta opožděná, nebo zda probíhá zápis do databáze se spožděním, ale potřeboval bych, aby tato komponenta ukazovala, záznamy, které uživatel do tabulky přidává.

Zde je kód v jazyce C#, kde data do databáze zapisuji.

System.Data.OleDb.OleDbConnection connection = new System.Data.OleDb.OleDbConnection();
		connection.ConnectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=""D:\cesta\pokus.mdb""";
		connection.Open();
		System.Data.OleDb.OleDbCommand command = new System.Data.OleDb.OleDbCommand(
			String.Format(
				"INSERT INTO zbozi (nazev, zapsal, datum) VALUES ('{0}', '{1}', '{2}')",
				TextBox1.Text,
				1,
				System.DateTime.Now
			),
			connection
		);
		command.ExecuteNonQuery();
		connection.Close();

Webový formulář vypadá takto:

<asp:Label ID="Label1" runat="server" Font-Size="26pt" Text="Zapsat nové zboží do katalogu"></asp:Label><br />
		<asp:Label ID="Label2" runat="server" Text="Název zboží:"></asp:Label>
		<asp:TextBox ID="TextBox1" runat="server" Width="255px"></asp:TextBox><br />
		<asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Zapsat" /><br />
		<br />
		Aktuálně nabízené zboží:<br />
		<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataKeyNames="ID"
			DataSourceID="SqlDataSource1">
			<Columns>
				<asp:BoundField DataField="ID" HeaderText="ID" InsertVisible="False" ReadOnly="True"
					SortExpression="ID" />
				<asp:BoundField DataField="datum" HeaderText="datum" SortExpression="datum" />
				<asp:BoundField DataField="nazev" HeaderText="nazev" SortExpression="nazev" />
			</Columns>
		</asp:GridView>
		<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:pokusConnectionString %>"
			ProviderName="<%$ ConnectionStrings:pokusConnectionString.ProviderName %>" SelectCommand="SELECT [ID], [datum], [nazev] FROM [zbozi]">
		</asp:SqlDataSource>

Poraďte někdo, prosím. Vůbec netuším v čem je problém a jak ho spravit.

Děkuju moc

Bruno

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

Data ti zůstavají ve skrytém poli ve stránce zvaném ViewState, aby se nemusela pořád tahat ze serveru. Řešením je zavolat po updatu dat příkaz:

GridView1.DataBind()

Ten vše načte znovu.

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