Avatar billede laurits Nybegynder
14. april 2005 - 16:27 Der er 9 kommentarer og
1 løsning

DataGrid virker ikke

Jeg er lidt ny i C# så jeg har lidt problemer.
Forsøger at lave et DataGrid hvor data fra en DB skal indsættes.
Data hentes fra DB via en anden klasse 'DBConnection'.
Jeg ved også at data kommer bliver hentet korrekt (testet på anden måde).
Problemet er at jeg ikke for noget grid frem.
Nogen der kan hjælpe?
Bruger MS Visual Studio .Net)


using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;

namespace DBtest
{
    public class DBProjekt : System.Web.UI.Page
    {
        protected System.Web.UI.WebControls.Button Button1;
        protected System.Web.UI.WebControls.DataGrid DataGrid1;   

        private string s;       
        private string d;

        private DBConnection dbcon;           
        private DataSet ds;

        private void Page_Load(object sender, System.EventArgs e)
        {   
            DataGrid1.DataSource = ds;
            DataGrid1.DataBind();       
        }

        #region Web Form Designer generated code
        override protected void OnInit(EventArgs e)
        {
            InitializeComponent();
            base.OnInit(e);
        }

        private void InitializeComponent()
        {   
            this.Button1.Click += new System.EventHandler(this.Button1_Click);
            this.Load += new System.EventHandler(this.Page_Load);
        }
        #endregion
       
        private void Button1_Click(object sender, System.EventArgs e)
        {
            Button1.Text = "Henter Data";           
           
            dbcon = new DBConnection();
           
            ds = new DataSet();
            ds = dbcon.selectOdbcSrvRows("place");
            d = ds.Tables[0].TableName;

            foreach(DataTable myTable in ds.Tables)
            {
                foreach(DataRow myRow in myTable.Rows)
                {
                    foreach (DataColumn myColumn in myTable.Columns)
                    {
                        Console.WriteLine(myRow[myColumn]);
                        DataGrid1.DataSource=ds.Tables["Place"].DefaultView;
                    }
                }
            }   
        }       
    }
}
Avatar billede burningice Nybegynder
14. april 2005 - 16:36 #1
du skal ikke databinde di grid i Page_Load, der er dit ds tom

this should do

using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;

namespace DBtest
{
    public class DBProjekt : System.Web.UI.Page
    {
        protected System.Web.UI.WebControls.Button Button1;
        protected System.Web.UI.WebControls.DataGrid DataGrid1; 

        private DBConnection dbcon;         
        private DataSet ds;

        #region Web Form Designer generated code
        override protected void OnInit(EventArgs e)
        {
            InitializeComponent();
            base.OnInit(e);
        }

        private void InitializeComponent()
        { 
            this.Button1.Click += new System.EventHandler(this.Button1_Click);
        }
        #endregion
     
        private void Button1_Click(object sender, System.EventArgs e)
        {
            Button1.Text = "Henter Data";         
         
            dbcon = new DBConnection();
         
            ds = dbcon.selectOdbcSrvRows("place");
            DataGrid1.DataSource=ds.Tables["Place"].DefaultView
        }     
    }
}
Avatar billede laurits Nybegynder
14. april 2005 - 16:40 #2
hmm det kan godt ske at koden er korrekt, men der kommer stadig intet datagrid frem på hjemmesiden!?!
Avatar billede laurits Nybegynder
14. april 2005 - 16:45 #3
er det aspx filen den er gal med så?
Avatar billede burningice Nybegynder
14. april 2005 - 16:47 #4
har du sikret dig at viewstate er slået til? for i dit scenario hvis datagriddet nemlig ikke huske sit indhold mellem requests hvis at viewstate er slået fra.
Avatar billede burningice Nybegynder
14. april 2005 - 16:48 #5
hov.. 2 sec... Click-metoden mangler en DataBind

private void Button1_Click(object sender, System.EventArgs e)
        {
            Button1.Text = "Henter Data";       
       
            dbcon = new DBConnection();
       
            ds = dbcon.selectOdbcSrvRows("place");
            DataGrid1.DataSource=ds.Tables["Place"].DefaultView
            DataBind();
        }
Avatar billede laurits Nybegynder
14. april 2005 - 16:51 #6
nej det har jeg ikke lige kendskab til. Er det en metode der skal aktiveres i koden eller i Studio .Net programmet?
Avatar billede burningice Nybegynder
14. april 2005 - 16:53 #7
normalt plejer den at være enablet, men du kan da sikre dig det ved at tilføje

EnableViewState="true"

i dit page-tag på aspx-siden
Avatar billede laurits Nybegynder
14. april 2005 - 16:54 #8
YES FOR SA****  SÅ KØRER DET.... JUHHUUUUU.
kanon set mand!!!
Avatar billede burningice Nybegynder
14. april 2005 - 16:56 #9
:)
Avatar billede laurits Nybegynder
14. april 2005 - 16:59 #10
værsgo' her dine velfortjente points.
Tak for hjælpen!
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