Avatar billede ramad Praktikant
17. marts 2005 - 10:36 Der er 4 kommentarer og
2 løsninger

DataGrid og MS Access

Hejsan

Jeg er igang med at lave en lille applikation, der skal kunne åbne Access databaser og derefter præsentere data i et DataGrid. Jeg har fået hentet data frem, men nu er det fremvisningen der driller. Jeg ville gerne følgende:

- At datasættet fyldte hele DataGrid'et altså horisontalt. Jeg har prøvet at lege med dock, men uden held.

- At jeg datasættet "ekspanderet" - pt. får jeg en mor-node hvor jeg så skal klikke mig ned før data kommer frem.

Al hjælp modtages med kyshånd.
Avatar billede segato Nybegynder
17. marts 2005 - 10:54 #1
Det med du får en mor node kan du bland andet løse ved at hive præcis det datatable ud af datasettet du ønsker at viser og binde det til din kontrol i stedet for hele datasettet.

.DataSource = DS.Tables[0];

Du kan styre at datafeltet fylder hele datagrid ved at beregne datagrids bredde. Herefter divididere du så antal kolonner med breden og så har du hvad bredden på hver kolonne skal være. Den kan du så efter følgende sætte.
Avatar billede ramad Praktikant
17. marts 2005 - 13:36 #2
Tak for hjælpen. Det med at vise datasættet har jeg fået styr på nu, men det med bredden er jeg ikke helt klar på.

Kan du evt. vise et eksempel på det?
Avatar billede segato Nybegynder
17. marts 2005 - 14:06 #3
Har lige smedet et hurtigt eksempel sammen. Den her funktion skal kaldes indne du sætter DataSource på din DataGrid med det DataTable du ønsker at vise og din DataGrid kontrol:


void FitDataGrid(DataGrid dg, DataTable dt)
{
int dgWidth = dg.Width;           
int countCols = dt.Columns.Count;

int colWidth = (dg.Width-dg.RowHeaderWidth-2) / dt.Columns.Count;
dg.PreferredColumnWidth = colWidth;
}
Avatar billede segato Nybegynder
17. marts 2005 - 14:12 #4
Client kode if any interests;

        DBCommandWrapper dbCommandWrapper = m_mdab.GetStoredProcCommandWrapper("usp_get_transmit_data");
            dbCommandWrapper.AddInParameter("@news_id", DbType.Int32, 1);
            DataSet channels = m_mdab.ExecuteDataSet(dbCommandWrapper);
            int coutCols = dataGrid1.PreferredColumnWidth = 10;
            DataTable tblGroups = channels.Tables[0];           
           
            FitDataGrid(dataGrid1,tblGroups);
            dataGrid1.DataSource = tblGroups;
Avatar billede ramad Praktikant
17. marts 2005 - 14:22 #5
Perfekt - jeg bukker og takker. Hvert point vel fortjent.
Avatar billede segato Nybegynder
17. marts 2005 - 14:41 #6
Det var så lidt.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester