Visaul Studio asp.net i Mysql

rekic

Početnik
Poruka
9
Pozdrav svima,


Imam jedan problem oko kojeg se zezam vec duze vrijeme i ne znam gdje grijesim, naime imam dvije tabele u bazi:

u jednoj tabeli imam id i ime artikla
u drugoj bazi imam id i kolicinu.

sve lijepo preko listbox u asp.net povezem i sve mi prikaze iz baze sto zelim ali imam jedan drugi problem:

kada mi izbaci listu iz baze PRIMJER:

Id ime kolicina
1 jabuka 10
2 kruska 20
3 mrkva 10


e kada kliknem na jabuka meni izbaci u label koji sam povezao sa listbox izbaci 10 to je ok , kada kliknem na kruska izbaci mi 20 i to je ok , ali kada kliknem na mrkva prebaci mi na jabuka i izbaci 10, znaci nikako ne mogu da imam iste kolicine , ako imam iste kolicine odmah te dva imena nece da rade kako treba, cim sve prepravim da su razlicite kolicine sve radi super kako treba.
Mozete pogledati slike koje sam dodao.

Bildschirmfoto 2017-09-03 um 20.41.34.jpg

Bildschirmfoto 2017-09-03 um 20.41.47.jpg

Bildschirmfoto 2017-09-03 um 20.41.55.jpg
 
Dude,
Apsolutno nista nisi rekao o tome kako si to implementirao, ne vidimo liniju koda.
Slike ne govore apsolutno nista.
Kako si organizovao svoj projekat? MVC? MVVM?


using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using MySql.Data.MySqlClient;
using System.Data;

namespace Inventura
{
public partial class WebForm4 : System.Web.UI.Page
{
MySqlConnection con = new MySqlConnection("server=localhost;userid=root;password="";database=tbluser;port=3306;");

protected void Page_Load(object sender, EventArgs e)
{

MySqlDataAdapter adp = new MySqlDataAdapter("SELECT login_page.Id, login_page.Name, login_page.Username, kolicina.Id, kolicina.login_page_Id, kolicina.kolicina FROM login_page INNER JOIN kolicina ON login_page.Id = kolicina.Id ", con);
DataTable dt = new DataTable();
adp.Fill(dt);
if (!IsPostBack)
{
con.Open();
string thisrow = "";
ListBox1.Items.Add(thisrow);
ListBox1.DataTextField = "Name";
ListBox1.DataValueField = "kolicina";
ListBox1.DataSource = dt;
ListBox1.DataBind();

con.Close();
}

//close connection

}

protected void ListBox1_SelectedIndexChanged(object sender, EventArgs e)
{

Label1.Text = ListBox1.SelectedValue;
Label2.Text = ListBox1.SelectedItem.ToString();



}



}
}
 
Pristup ti je u startu pogresan. Tako se nikada ne radi.
Nikada ne povezujes direktno UI sa podacima iz baze!!!

1. Baza ti je napravljena lose. Prva stvar na koju mislis kada kreiras bazu je da razmisljas o entitetima u tvom programu. Onda razmisljas o povezanosti tih identiteta. A onda tek kreces da implementiras (da kreiras tabele) i da pazis pri kreiranju da ispostujes normalizaciju (ne sme biti replikacije podataka, svaka tabela mora imati primarni kljuc, paziti na tipove podataka, itd, itd....)

2.U svojoj aplikaciji, moras imati posebnu klasu koja mapira entitet iz baze podataka.

3. Moras imati posebnu klasu koja je zaduzena da komunicira sa bazom, i dostavi podatke user interfejsu. Ti podaci ce biti reprezentovani kroz kalsu iz tacke 2.

Tek onda radis bind-ovanje korisnickih kontrola sa podacima, i obradu dogadjaja (klik na listu i prikaz negde drugde, itd, itd.)

Preporucujem ti, ako imas strpljenja i zelis da nesto naucis, da se prikljucis "maloj skoli software developinga" ;)
 

Back
Top