[ perun85 @ 17.12.2008. 14:18 ] @
U projektu na kome radim imam jednu statičku klasu u kojoj se nalazi statički objekat klase DataSet1 (DataSet1 je typed DataSet; ovo sam uradio jer želim da sa svih formi pristupam jednom idstom DataSet1 objektu).
Pošto sam do sada za povezivanje sa DataGridView objektom uglavnom koristio typed BindingSource, interesuje me
sledeće:

1. Postoji li način da iz kada setujem DataSource i DataMember svojstva BindingSourca?
2. Pomoću kog svojstva DataGridViewa i BindingSourca mogu podesiti koje će se kolone tabele koja je DataMember prikazati u DataGridViewu?

Ukoliko ne postoje konkretni odgovori na moja pitanja, bilo bi korisno kada bi me barem usmerili na pravi put.

Unapred hvala na odgovorima.
[ Igor Gajic @ 17.12.2008. 19:28 ] @
Odgovor za drugo pitanje:


U komponenti dataGridView dodaj kolone koje hoces da prikazes, desni klik, Add Columns.

I zatim u konstruktoru klase mozes da napises:

Code:

dataGridView1.AutoGenerateColumns=false;   // sprecavas da dataGridView1 sam napravi kolone (tj. doda sve kolone)
dataGridView1.DataSource=BindingSource1;  // povezes sa data source

dataGridView1.Columns["Column1"].DataPropertyName = "Kolona1";  // povezujes odgovarajuce kolone u dataGridView i u odgovarajucoj tabeli
dataGridView1.Columns["Column2"].DataPropertyName = "Kolona2";
dataGridView1.Columns["Column3"].DataPropertyName = "Kolona3";

[ perun85 @ 17.12.2008. 19:36 ] @
Hvala puno na odgovoru.
[ perun85 @ 17.12.2008. 20:21 ] @
Probao sam da to uradim pomocu ovog koda, no nisam uspeo. Dobijem prikaz dataGridView i samih kolona no u njima nema podataka koji se nalaze u bazi.

Da li se ovo desava zbog toga sto koristim kao DataSource polje staticke klase?
[ Igor Gajic @ 17.12.2008. 20:50 ] @
Code:


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace Test2
{
    public partial class Form1 : Form
    {
        private DataTable Tabela;
        private BindingSource bs;
        public Form1()
        {
            InitializeComponent();
            Tabela = new DataTable();
            bs = new BindingSource();

            Tabela.Columns.Add("Prva", typeof(string));
            Tabela.Columns.Add("Druga", typeof(string));
            Tabela.Columns.Add("Treca", typeof(string));
            Tabela.Columns.Add("Cetvrta", typeof(string));

            Tabela.Rows.Add(new object[] {"1","2","3","4" });
            Tabela.Rows.Add(new object[] { "10", "20", "30", "40" });
            Tabela.Rows.Add(new object[] { "100", "200", "300", "400" });
            Tabela.Rows.Add(new object[] { "1000", "2000", "3000", "4000" });

            bs.DataSource = Tabela;
            dataGridView1.AutoGenerateColumns = false;
            dataGridView1.DataSource = bs;

            dataGridView1.Columns["Column1"].DataPropertyName = "Prva";
            dataGridView1.Columns["Column2"].DataPropertyName = "Druga";
            dataGridView1.Columns["Column3"].DataPropertyName = "Cetvrta";
        }
    }
}



Ovaj kod sigurno radi i prikazuje samo prvu ,drugu i cetvrtu kolonu. Pogledaj gde gresis.
[ perun85 @ 17.12.2008. 21:23 ] @
Tvoj kod radi, no problem je u tome sto ja ne mogu da procitam podatke iz DataSeta koji je polje u statickoj klasi. Da bude malo jasnije evo i koda.

bs.DataSource = Class1.ds; (pomenuta klasa i njeno DataSet polje)
bs.DataMember = "Proizvod"; (naziv proizvoda)

dalje ide kod koji dodaje kolonu u dataGridView1 i sledi povezivanje te kolone sa poljem idProizvoda koje se nalazi u proizvod tabeli DataSeta ds

dataGridView1.Columns["Column1"].DataPropertyName = "idProizvoda";

Kada izvrsim ovaj kod dobijem DataGridView sa jednom kolonom koja je prazna, dok se u bazi nalazi vec odredjeni broj proizvoda.
[ Igor Gajic @ 17.12.2008. 21:40 ] @
Jedno pitanje. A da li si negde u kodu uradio:

AdapterTabeleProizvodi.Fill(ds);

Tj. da li si uopste procitao podatke iz baze, pa povezao sa gridom ?
[ perun85 @ 17.12.2008. 21:55 ] @
Dodao sam. Mozda sam napravio neku banalnu gresku, te cu ovo ostaviti za sutra kada se budem mogao vise koncentrisati na ovaj problem. Jos jednom hvala na pomoci.
[ perun85 @ 18.12.2008. 12:26 ] @
Nazalost, moracu da izmenim logiku kojom pristupam bazi, jer izgleda da pristup koji sam ja zamislio nije moguc. Igore jos jednom hvala na objasnjenjima.

Pozdrav.