Avatar billede clauso Nybegynder
24. marts 2004 - 17:50 Der er 10 kommentarer og
1 løsning

C# datagrid problem

Hej,
Roder lidt i C# for en gangs skyld og kan intet få frem fra en
datagrid, som kaldes id="dgMain" runat="server", med denne code
behind:

public class WebForm1 : System.Web.UI.Page
    {
    protected System.Web.UI.WebControls.DataGrid dgMain;
    private void Page_Load(object sender, System.EventArgs e)
    {
OleDbConnection cnn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=C:/inetpub/wwwroot/data1/db1.mdb");

DataSet dsMain = new DataSet();
OleDbCommand cmdCustomers = cnn.CreateCommand();
cmdCustomers.CommandType = System.Data.CommandType.Text;
cmdCustomers.CommandText="SELECT * FROM Customers";
OleDbDataAdapter daCustomers = new OleDbDataAdapter();
daCustomers.SelectCommand = cmdCustomers;
daCustomers.Fill(dsMain, "Customers");
dgMain.DataSource = dsMain;
dgMain.DataMember = "Customers";   
    }
}

Jeg får INGEN fejl og en hvid browser uden indhold.
Hvad fejler ovennævnte? hvis ikke noget, hvor kan det da
gå galt? (datagridden er trukket til siden og tildelt id=dgMain)
Er det rigtigt at C# skal skrives rigtigt med store/små bogstaver
som XML eller er det bare en forkert indstilling i VS.net?
Jeg får iøvrigt heller ingen fejl i VS.net.
Databasen db1 er iøvrigt en uændret Northwind.
Avatar billede dgivoni Nybegynder
24. marts 2004 - 17:57 #1
Det kunne naesten lyde som om at IIS ikke fortolker asp.net-siderne rigtigt?
Hvilken kilde-kode har den hvide side, du ser?
Avatar billede clauso Nybegynder
24. marts 2004 - 18:28 #2
Her er den "hvide":

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
    <HEAD>
        <title>WebForm1</title>
        <meta name="GENERATOR" Content="Microsoft Visual Studio .NET 7.1">
        <meta name="CODE_LANGUAGE" Content="C#">
        <meta name="vs_defaultClientScript" content="JavaScript">
        <meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
    </HEAD>
    <body>
        <form name="Form1" method="post" action="WebForm1.aspx" id="Form1">
<input type="hidden" name="__VIEWSTATE" value="dDwtNTcyNzE4MDk2O3Q8O2w8aTwxPjs+O2w8dDw7bDxpPDE+Oz47bDx0PEAwPHA8cDxsPERhdGFNZW1iZXI7PjtsPEN1c3RvbWVyczs+Pjs+Ozs7Ozs7Ozs7Oz47Oz47Pj47Pj47PlVa/+MhaAt75dxD3aLBg/OKI8vq" />

           
        </form>
    </body>
</HTML>


og her er webform1.aspx:

<%@ Page language="c#" Codebehind="WebForm1.aspx.cs" AutoEventWireup="false" Inherits="data1.WebForm1" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
    <HEAD>
        <title>WebForm1</title>
        <meta name="GENERATOR" Content="Microsoft Visual Studio .NET 7.1">
        <meta name="CODE_LANGUAGE" Content="C#">
        <meta name="vs_defaultClientScript" content="JavaScript">
        <meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
    </HEAD>
    <body>
        <form id="Form1" method="post" runat="server">
            <asp:DataGrid id="dgMain" style="Z-INDEX: 101; LEFT: 152px; POSITION: absolute; TOP: 152px" runat="server"
                ForeColor="Transparent" Font-Size="Small" Font-Names="Arial"></asp:DataGrid>
        </form>
    </body>
</HTML>
Avatar billede clauso Nybegynder
24. marts 2004 - 18:32 #3
<asp:DataGrid id="dgMain" style="Z-INDEX: 101; LEFT: 152px; POSITION: absolute; TOP: 152px" runat="server"></asp:DataGrid>

Legede på et tidspunkt med forecolor, font etc. Det er nu fjernet
igen til ovennævnte Datagrid, men stadig hvid browser uden indhold.
Avatar billede burningice Nybegynder
24. marts 2004 - 19:07 #4
du mangler at kalde DataBind() på dit datagrid

og ja, c# er case-sensetive
Avatar billede clauso Nybegynder
24. marts 2004 - 19:14 #5
Jeg havde det i tankerne, men jeg aner ikke hvordan det gøres
i C#, da jeg fornylig kun er begyndt med asp.net i vb.
Husk lige at skrive linien som et svar.
Avatar billede clauso Nybegynder
24. marts 2004 - 19:32 #6
OK jeg har fået noget på skærmen, med
dgMain.DataBind()
Får jeg lidt mere for pointene?
Jeg havde som udgangspunkt, dette link:
http://www.ondotnet.com/lpt/a/3879
med Datarelations,
og har fået customers på skærmen nu.
Dog har jeg nu brugt det fulde script med 3 tabeller
og får ikke + i siden, kun en tabel, kan dette være
nogle parametre på Datagridet der er opsat forkert?
Iøvrigt har scriptet ingen DataBind?
Avatar billede burningice Nybegynder
25. marts 2004 - 12:57 #7
jamen kæreste dog... det du har fundet er minded på System.Windows.Forms.DataGrid-klassen, det du arbejder med her er System.Web.UI.WebControls.DataGrid-klassen. Der er mange ligheder, men på nogle punkter er de ikke helt, bla. hvordan de bliver renderet.
Avatar billede clauso Nybegynder
25. marts 2004 - 13:24 #8
OK det forklarer sikkert også den manglende DataBind()......
Sender du lige et svar for point?
Avatar billede clauso Nybegynder
25. marts 2004 - 13:54 #9
Jeg prøvede lige af ren nyskærighed at smide det over i en C# winform,
(trak en datagrid og gav den id=dgMain) men jeg kan
ikke rigtigt se hvor (hvilket afsnit) jeg placere koden?
da jeg som skrevet aldrig har brugt C# før.....
Hvad svarer til Page_Load?
Avatar billede clauso Nybegynder
25. marts 2004 - 13:57 #10
Det kører nu i olie, så jeg behøver bare et svar for point...
Avatar billede burningice Nybegynder
25. marts 2004 - 13:57 #11
der vil man som oftes placere koden fra Page_Load i formens konstruktor... den har dog også en Load-event man kan bruge (prøv at dobbelklikke på formen i designeren, det skulle gerne oprette en Load-event)
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