Forum » Programiranje » [Visual C#] TableAdapter
[Visual C#] TableAdapter
tx-z ::
V Visual Studiu delam program za Windows in problem je sledeč.
Za napolnitev te tabele se uporablja igralecTableAdapter.
V tem tableadapterju je sledeča poizvedba
Jst bi pa rad naredu, po domač povedan tko:
Torej da bi mi prikazal samo tiste igralce k so v prej izbranem moštvu..
Kako bi to naredil? Oz. če ima kdo še kakšen boljši predlog kako to implementirat pa tok bolš=D Hvala=D
Za napolnitev te tabele se uporablja igralecTableAdapter.
V tem tableadapterju je sledeča poizvedba
SELECT ID_Igralca, ID_Mostva, ImeIgralca, PriimekIgralca, LetnicaRojstvaIgralec, Visina, Teza FROM Igralec
Jst bi pa rad naredu, po domač povedan tko:
SELECT ID_Igralca, ID_Mostva, ImeIgralca, PriimekIgralca, LetnicaRojstvaIgralec, Visina, Teza FROM Igralec WHERE ID_Mostva = Form1.comboBox1.selectedValue().toString;
Torej da bi mi prikazal samo tiste igralce k so v prej izbranem moštvu..
Kako bi to naredil? Oz. če ima kdo še kakšen boljši predlog kako to implementirat pa tok bolš=D Hvala=D
tx-z
- spremenilo: tx-z ()
Mitja Bonča ::
Ti bi rad naredil poizvedbo iz kakor je meni videno iz dveh tabel, in sicer iz tabele igralec in iz tabele moštvo. Torej moraš narediti:
(v tabeli Igralec moraš OBVEZNO imeti tuji ključ - ID iz tabele Mostvo):
SELECT Igralec.ID_Igralca, Mostvo.ID_Mostva, Igralec.ImeIgralca, Igralec.PriimekIgralca, Igralec.LetnicaRojstvaIgralec,
Igralec.Visina, Igralec.Teza
FROM Igralec, Mostvo
WHERE Igralec.ID_Mostva = Mostvo.IDMostva AND
ID_Mostva = Form1.comboBox1.GetItemText(comboBox1.SelectedItem);
//AMPAK TO NI ID - JE SAMO IME, RAZEN ČE NIMAŠ SAMO ŠTEVILK V COMBOBOXU! PAZLJIVO S TEM!
OPOZORILO 1: VSAKA TABELA NAJ BI IMELA SVOJ ID - IN TO NE IMENA, ALI KAJ DRUGRGA, PAČ PA ŠTEVILKE OD 1 NAPREJ (V KORAKU PO ENA)
OPOZORILO 2: bolje bi bilo narediti čisto svojo metodo, in vrednost iz comboBoxa poslati pot parameter:
npr v Form1 imaš metodo iz comboBoxa, kjer pridobivaš vrednosti glede na izbrani index v comboBoxu:
Upam da se ni malce olajšal delo in pokazal vsaj približno kako naj bi se pisala koda, čeprav tudi to še ni čisto ok, ampak za začetek bo kar uredu.
No če rabiš še kaj ti kar vprašaj,
lp, Mitja
(v tabeli Igralec moraš OBVEZNO imeti tuji ključ - ID iz tabele Mostvo):
SELECT Igralec.ID_Igralca, Mostvo.ID_Mostva, Igralec.ImeIgralca, Igralec.PriimekIgralca, Igralec.LetnicaRojstvaIgralec,
Igralec.Visina, Igralec.Teza
FROM Igralec, Mostvo
WHERE Igralec.ID_Mostva = Mostvo.IDMostva AND
ID_Mostva = Form1.comboBox1.GetItemText(comboBox1.SelectedItem);
//AMPAK TO NI ID - JE SAMO IME, RAZEN ČE NIMAŠ SAMO ŠTEVILK V COMBOBOXU! PAZLJIVO S TEM!
OPOZORILO 1: VSAKA TABELA NAJ BI IMELA SVOJ ID - IN TO NE IMENA, ALI KAJ DRUGRGA, PAČ PA ŠTEVILKE OD 1 NAPREJ (V KORAKU PO ENA)
OPOZORILO 2: bolje bi bilo narediti čisto svojo metodo, in vrednost iz comboBoxa poslati pot parameter:
npr v Form1 imaš metodo iz comboBoxa, kjer pridobivaš vrednosti glede na izbrani index v comboBoxu:
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e) { string strImeMostva = comboBox1.GetItemText(comboBox1.SelectedItem); // nato moraš pridobiti Id od izbranega moštva: int intIDMostva = PridobitevIdMostva(strImeMostva); // sedaj ko imaš id izbranega mostva, pridobiš vse podatke: DataTable tabela = PridobitevPodatkovZa_DGW(intIDMostva); if(tabela.Rows.Count > 0 ) { DGW_NalaganjePodatov(tabela); } else dataGridView1.Rows.Clear(); //če je tabela prazna, se izbriše celoten dgw! } private int PridobitevIdMostva(string strMostvo) { int intID = 0; using (SqlConnection povezava = new SqlConnection(p)) { using (SqlCommand cmd = new SqlCommand()) { cmd.CommandText = "SELECT IDMostva FROM Mostvo Where ImeMostva = @imeMostva"; cmd.Connection = povezava; cmd.Parameters.Add("@imeMostva", SqlDbType.VarChar, 50).Value = strMostvo; cmd.Connection.Open(); object objID = cmd.ExecuteScalar(); if (objID != null || objID != DBNull.Value) intID = Convert.ToInt32(objID); cmd.Connection.Close(); } } return intID; } private DataTable PridobitevPodatkovZa_DGW(int intId) { using (DataTable tabela = new DataTable("MojaTabela")) { using (SqlConnection povezava = new SqlConnection(p)) { using (SqlDataAdapter da = new SqlDataAdapter()) { da.SelectCommand = new SqlCommand(); da.SelectCommand.CommandText = @SELECT Igralec.ID_Igralca, Mostvo.ID_Mostva, " + "Igralec.ImeIgralca, Igralec.PriimekIgralca, " + "Igralec.LetnicaRojstvaIgralec, Igralec.Visina, " + "Igralec.Teza FROM Igralec, Mostvo " + "WHERE Igralec.ID_Mostva = Mostvo.IDMostva AND " + "ID_Mostva = @idMostva"; da.SelectCommand.Connection = povezava; da.SelectCommand.Parameters.Add("@idMostva", SqlDbType.Int).Value = intId; try { da.Fill(tabela); } catch { //čej je mogoča napaka jo izpiši - messageBox } } } return tabela; } } DGW_NalaganjePodatov(DataTable tabela) { //koda za poplonitev podatkov v dataGridView-ja) }
Upam da se ni malce olajšal delo in pokazal vsaj približno kako naj bi se pisala koda, čeprav tudi to še ni čisto ok, ampak za začetek bo kar uredu.
No če rabiš še kaj ti kar vprašaj,
lp, Mitja
Zgodovina sprememb…
- spremenil: Mitja Bonča ()
Iluvatar ::
Predlagam, da si malo pogledaš tele posnetke: http://msdn.microsoft.com/en-us/vbasic/.... Posebej tale bo zate zanimiv: http://msdn.microsoft.com/en-us/vbasic/...
So sicer v VB.net vendar je koncept enak.
So sicer v VB.net vendar je koncept enak.
tx-z ::
Hmm, hvala za obširno razlago, ampak se mi tole zdi mal prekompliciran za tako osnovno stvar kot jo rabm... Zdej sm ugotovu da je to kr hočm js narest enostavno tkole
Problem je kr pol on kreira na tej formi še en textbox pa gumb, kjer vnesm to vrednost. Rad bi pa da jo določm prek neke spremenljivke...
Pr gumbu pol kreira to kodo
In tle sm pač samo iD_MostvaToolStripTextBox samo zamenju s to spremenljivko in dela. Problem je da dela šele k prtisnm gumb in ne že ob odprtju forme..Any suggestions?
SELECT ID_Igralca, ID_Mostva, ImeIgralca, PriimekIgralca, LetnicaRojstvaIgralec, Visina, Teza FROM Igralec WHERE ID_Mostva = ?
Problem je kr pol on kreira na tej formi še en textbox pa gumb, kjer vnesm to vrednost. Rad bi pa da jo določm prek neke spremenljivke...
Pr gumbu pol kreira to kodo
try { this.igralecTableAdapter.FillBy5(this.bazaDataSet.Igralec, ((decimal)(System.Convert.ChangeType(iD_MostvaToolStripTextBox.Text, typeof(decimal))))); } catch (System.Exception ex) { System.Windows.Forms.MessageBox.Show(ex.Message); }
In tle sm pač samo iD_MostvaToolStripTextBox samo zamenju s to spremenljivko in dela. Problem je da dela šele k prtisnm gumb in ne že ob odprtju forme..Any suggestions?
tx-z
tx-z ::
Sm naredu kr tako da bo vse v istem oknu pa ne bo problema s tem. Zanima pa me kaj je v tej tvoji kodi "p"?
using (SqlConnection povezava = new SqlConnection(p))
using (SqlConnection povezava = new SqlConnection(p))
tx-z
Zgodovina sprememb…
- spremenilo: tx-z ()
tx-z ::
Okej to sm zdej vse nekak uspeu narest=) Me pa zanima če kdo slučajno ve, kako bi dodau kakšne elemente v koledar (torej, na formo dodam dateTimePicker), in bi rad naredu tko da če so neki dogodki recimo 10.9.2010, da bi se recimo tist datum otemniu. Kr ta koledar sicr ma tm za databindings, ampak karkol sm naredu nekak mi ni ratal narest da bi kakšno vrednost prkazu tm notr.. Torej odpre se koledar, in če nek dogodek obstaja bi v koledarju bil tist dan drugače označen.
tx-z
detroit ::
hmm če si predstavljam tole prou sm enkrat lih neki podobnga delu za fun
deklarirej
private string[,] pomembniDnevi = new string[32, 13];
pomembniDnevi[1, 1] = "Guess what, nov let";
potem pa na event calendar dayrender
CalendarDay d = e.Day;
TableCell c = e.Cell;
if (d.IsOtherMonth)
c.Controls.Clear();
else
{
string pomen = pomembniDnevi[d.Date.Day, d.Date.Month];
if (pomen != null)
{
c.BackColor = Color.Red;
c.ForeColor = Color.White;
c.Font.Bold = true;
}
}
asp.net calendar komponenta, si predstavlam da una ni dost drugačna
deklarirej
private string[,] pomembniDnevi = new string[32, 13];
pomembniDnevi[1, 1] = "Guess what, nov let";
potem pa na event calendar dayrender
CalendarDay d = e.Day;
TableCell c = e.Cell;
if (d.IsOtherMonth)
c.Controls.Clear();
else
{
string pomen = pomembniDnevi[d.Date.Day, d.Date.Month];
if (pomen != null)
{
c.BackColor = Color.Red;
c.ForeColor = Color.White;
c.Font.Bold = true;
}
}
asp.net calendar komponenta, si predstavlam da una ni dost drugačna
Skero
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | C# težavaOddelek: Programiranje | 3708 (2554) | mladec |
» | [C#,SQL]Oddelek: Programiranje | 1240 (1153) | JanOlMajti |
» | Statistika dijakov, pomocOddelek: Programiranje | 1781 (1265) | Mitja Bonča |
» | [C#] Dostop do objekta iz različnih formOddelek: Programiranje | 2163 (1876) | Kekec |
» | [C#] Query in codeOddelek: Programiranje | 1819 (1563) | iggy1 |