Avatar billede tinjim Nybegynder
23. juni 2004 - 11:31 Der er 69 kommentarer og
1 løsning

ASP.NET C# Class

Hejsa,
Jeg håber der er nogen der kan give mig et eksempel på hvordan jeg løser følgende problemstilling:

Jeg har en ASP.NET webapp. programmeret i c#, som jeg gerne vil forbedre. Jeg har en database og en class.cs fil.

Fra min webform.aspx vil jeg gerne kunne kalde en funktion i class filen, der laver opslag i en db, som så returnerer f.eks. et dataset med alle brugernavne i db. Det var en giv mit alle funktion.
Ud over dette vil jeg også kunne sende en parameter med (så funktionen bliver overloaded), så jeg kan sende et brugernavn fra min webform, hvorefter jeg får returneret brugerdata for den pågældende bruger.

Er det noget der kan løses på en nem måde? Min mening med det, er at adskille præs. laget fra datalaget!
Kom gerne med kommentarer til eksemplet.
På forhånd tak!
Avatar billede tinjim Nybegynder
23. juni 2004 - 11:39 #1
Det er en Access DB!
Avatar billede the_party_dog Nybegynder
23. juni 2004 - 12:18 #2
public DataSet (string Brugernavn)
{
Her skriver du din kode som henter oplysninger ud fra din DB, og gemmer dem i et dataset.

return(DataSetNavnet);

}

Så når du kalder din funktion gør du noget i den her stil:

DataSet BrugereSet = new DataSet();

BrugereSet = DataSet("+ Variabelnavn);
Avatar billede the_party_dog Nybegynder
23. juni 2004 - 12:21 #3
public dataset funktion skal selvfølgelig ligge i din class fil, og den class skal du selvfølgelige lave en reference til på din side..
Avatar billede tinjim Nybegynder
23. juni 2004 - 12:35 #4
Den brokker sig over DataSet:
"Class, struct, or interface method must have a return type"

public DataSet(string Brugernavn)
{
    //Her skriver du din kode som henter oplysninger ud fra din DB, og gemmer dem i et dataset.
    string DataSetNavnet = "Testnavn";
    return(DataSetNavnet);
}
Avatar billede the_party_dog Nybegynder
23. juni 2004 - 12:37 #5
Det var lige taget ud af den blå luft, giv mig 5 min, så vender jeg tilbage med et noget bedre eksempel... :)
Avatar billede tinjim Nybegynder
23. juni 2004 - 12:37 #6
Kanon :-)
Avatar billede the_party_dog Nybegynder
23. juni 2004 - 12:42 #7
Lav et nyt projekt. I det projekt laver du kun en class fil. Den class fil definere vi sammen nu, og så skal jeg nok hjælpe dig videre :)
Avatar billede tinjim Nybegynder
23. juni 2004 - 12:44 #8
Er klar!
Avatar billede tinjim Nybegynder
23. juni 2004 - 12:45 #9
Dette er min class1.cs
using System;

namespace WebApplication1
{
    /// <summary>
    /// Summary description for Class1.
    /// </summary>
    public class Class1
    {
        public Class1()
        {
            //
            // TODO: Add constructor logic here
            //
        }
    }
}
Avatar billede the_party_dog Nybegynder
23. juni 2004 - 12:50 #10
public DataSet GetUserInformation(string Brugernavn)
{
    DataSet ReturnDataSet = new DataSet();

Nu skal du lave en connection til din Database server, normalt bruger jeg en SQL server.

SqlConnection ConnectionDB = new SqlConnection("data source=SERVERNAVN;initial catalog=DATABASENAVN;password=PASSWORD;persist security info=True;user id=USERID;packet size=4096")

SqlDataAdapter UserAdapter = new SqlDataAdapter("SELECT * FROM "TABELNAVN" WHERE "KOLONNENAVN" = '"+ Brugernavn +"'", ConnectionDB);

UserAdapter.Fill(ReturnDataSet);

return(ReturnDataSet);

}
Avatar billede the_party_dog Nybegynder
23. juni 2004 - 12:51 #11
det sætter du ind, lige når "public Class1()" funktion slutter...
Avatar billede the_party_dog Nybegynder
23. juni 2004 - 12:53 #12
Skal desværre til møde, er her om 20 min igen.... :)
Avatar billede tinjim Nybegynder
23. juni 2004 - 12:54 #13
skal jeg ikke bruge
using System.?

FEJL:
The type or namespace name 'DataSet' could not be found (are you missing a using directive or an assembly reference?)
Avatar billede tinjim Nybegynder
23. juni 2004 - 12:56 #14
Har inkluderet:
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;
using System.Data.SqlClient;
using System.Data.OleDb;

Så nu er der kun fejl ved:
The type or namespace name 'UserAdapter' could not be found (are you missing a using directive or an assembly reference?)
Avatar billede tinjim Nybegynder
23. juni 2004 - 12:58 #15
min fejl... 2 sek
Avatar billede the_party_dog Nybegynder
23. juni 2004 - 13:02 #16
:) Jeg er tilbage på min plads... :) Har du mulighed for at bruge SQL adgang til din server, så ville det gøre mine hjælpe muligheder MEGET bedre... :)
Avatar billede tinjim Nybegynder
23. juni 2004 - 13:03 #17
nej desværre.

Nu ser den sådan ud, og er builded:
        public DataSet GetUserInformation(string Brugernavn)
        {
            DataSet ReturnDataSet = new DataSet();
            //Nu skal du lave en connection til din Database server, normalt bruger jeg en SQL server.
            OleDbConnection conn = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;Data Source=Tipsdata.mdb");
            OleDbDataAdapter da = new OleDbDataAdapter("SELECT * FROM tblLogin WHERE Username="+Brugernavn+"",conn);
            //SqlConnection ConnectionDB = new SqlConnection("data source=SERVERNAVN;initial catalog=DATABASENAVN;password=PASSWORD;persist security info=True;user id=USERID;packet size=4096")
            //SqlDataAdapter UserAdapter = new SqlDataAdapter("SELECT * FROM "TABELNAVN" WHERE "KOLONNENAVN" = '"+ Brugernavn +"'", ConnectionDB);
            da.Fill(ReturnDataSet);
            return(ReturnDataSet);
        }
Avatar billede tinjim Nybegynder
23. juni 2004 - 13:05 #18
hvordan får jeg så info på min webform?
Avatar billede the_party_dog Nybegynder
23. juni 2004 - 13:05 #19
Slet det her:
//SqlConnection ConnectionDB = new SqlConnection("data source=SERVERNAVN;initial catalog=DATABASENAVN;password=PASSWORD;persist security info=True;user id=USERID;packet size=4096")
            //SqlDataAdapter UserAdapter = new SqlDataAdapter("SELECT * FROM "TABELNAVN" WHERE "KOLONNENAVN" = '"+ Brugernavn +"'", ConnectionDB);
Avatar billede tinjim Nybegynder
23. juni 2004 - 13:05 #20
klaret!
Avatar billede the_party_dog Nybegynder
23. juni 2004 - 13:06 #21
smid din kode ind, alt sammen... Så lad os se på det :)
Avatar billede tinjim Nybegynder
23. juni 2004 - 13:07 #22
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;
using System.Data.SqlClient;
using System.Data.OleDb;

namespace WebApplication1
{
    /// <summary>
    /// Summary description for Class1.
    /// </summary>
    public class Class1
    {
        public Class1()
        {}

        public DataSet GetUserInformation(string Brugernavn)
        {
            DataSet ReturnDataSet = new DataSet();
            OleDbConnection conn = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;Data Source=Tipsdata.mdb");
            OleDbDataAdapter da = new OleDbDataAdapter("SELECT * FROM tblLogin WHERE Username="+Brugernavn+"",conn);
            da.Fill(ReturnDataSet);
            return(ReturnDataSet);
        }
    }
}
Avatar billede the_party_dog Nybegynder
23. juni 2004 - 13:08 #23
lækkert :)

Har du prøvet at Builde det? Give det nogen fejl?
Avatar billede tinjim Nybegynder
23. juni 2004 - 13:08 #24
Ingen fejl
Avatar billede the_party_dog Nybegynder
23. juni 2004 - 13:10 #25
Så nu skal du over i dit normale projekt, og henvise til dette projekt du lige har oprettet.

Når du får det hen, engang, det kan godt være lidt svært, har ikke altid selv haft held med det.

Så kalder du din funktion sådan her:
DataSet ReceivedDataSet = new DataSet();
ReceivedDataSet = GetUserInformation(VARIABELNAVN);

//Nu har du modtaget et dataset fra din funktion, og nu kan du gøre med det hvad du vil.
Avatar billede the_party_dog Nybegynder
23. juni 2004 - 13:11 #26
Du skal selvfølgelig ligge de sidste 2 linjer kode ind i en knap eller noget...
Avatar billede tinjim Nybegynder
23. juni 2004 - 13:15 #27
Der kommer en fejl:
The name 'GetUserInformation' does not exist in the class or namespace 'WebApplication1.WebForm1'

Jeg beholder det i det samme projekt, for at gøre det simpelt, så der burde ikke være ref. problemer!?

namespace WebApplication1
{
    /// <summary>
    /// Summary description for WebForm1.
    /// </summary>
    public class WebForm1 : System.Web.UI.Page
    {
        private void Page_Load(object sender, System.EventArgs e)
        {
            string bruger = "malle";
            DataSet ReceivedDataSet = new DataSet();
            ReceivedDataSet = GetUserInformation(bruger);

        }
Avatar billede tinjim Nybegynder
23. juni 2004 - 13:16 #28
Jeg skal på en eller anden måde ref. til class1
Avatar billede tinjim Nybegynder
23. juni 2004 - 13:18 #29
Jeg skal vel kunne skrive:

Class1.GetUserInformation(bruger);

Det kan jeg bare ikke, da den kun kender de 2 std. Equals og RefEquals
Avatar billede the_party_dog Nybegynder
23. juni 2004 - 13:18 #30
jeps...

Højre klik på din solution, add projekt from web, find dit nye projekt. Bagefter højre klik på din reference, og klik faneblad projekts, og find dit nye projekt...
Avatar billede the_party_dog Nybegynder
23. juni 2004 - 13:20 #31
måske skal du skrive "using PROJEKTNAVN;" i toppen af din side, efter du har gjort som beskrevet tidligere... :)
Avatar billede the_party_dog Nybegynder
23. juni 2004 - 13:24 #32
Eller ville en anden løsning være:

Oprette en class fil i dit webprojekt, og skrive den sådan her:

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;
using System.Data.SqlClient;
using System.Data.OleDb;

namespace "NAVNPÅDITNAMESPACEIDITPROJEKT"
{
    /// <summary>
    /// Summary description for Class1.
    /// </summary>
    public class Class1 : Page
    {
        public Class1()
        {}

        public DataSet GetUserInformation(string Brugernavn)
        {
            DataSet ReturnDataSet = new DataSet();
            OleDbConnection conn = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;Data Source=Tipsdata.mdb");
            OleDbDataAdapter da = new OleDbDataAdapter("SELECT * FROM tblLogin WHERE Username="+Brugernavn+"",conn);
            da.Fill(ReturnDataSet);
            return(ReturnDataSet);
        }
    }
}

Så på den hjemmeside du skal bruge den, skriver du sådan her:

using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.Configuration;
using System.Data.SqlTypes;
using System.Web.Mail;

namespace Lagerstyring
{
    /// <summary>
    /// Summary description for Admin.
    /// </summary>
    public class Admin : NAVNETPÅDINCLASSFIL
    {

Du skal ikke bruge mine usings, dem skal du selvfølgelige erstatte med dem du bruger, de er kun med, så du kan se hvor du skal skrive henne....
Avatar billede tinjim Nybegynder
23. juni 2004 - 13:24 #33
Det er ikke det der er problemet, da det nye projekt vi lavede, er det jeg vil bruge (en skabelon).
I projektet har jeg:
Class1.cs (som vi lavede)
WebForm1.aspx (so er der standard) Det er fra denne fil, jeg vil kalde GetUserInformation(bruger) fra Class1 men følgende besked kommer:

The name 'GetUserInformation' does not exist in the class or namespace 'WebApplication1.WebForm1'

Kan du følge mig?
Avatar billede tinjim Nybegynder
23. juni 2004 - 13:25 #34
Det har jeg:

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;
using System.Data.SqlClient;
using System.Data.OleDb;

namespace WebApplication1
{
    /// <summary>
    /// Summary description for WebForm1.
    /// </summary>
    public class WebForm1 : System.Web.UI.Page
    {
        private void Page_Load(object sender, System.EventArgs e)
        {
            string bruger = "malle";
            DataSet ReceivedDataSet = new DataSet();
            ReceivedDataSet = GetUserInformation(bruger);

        }

        #region Web Form Designer generated code
        override protected void OnInit(EventArgs e)
        {
            //
            // CODEGEN: This call is required by the ASP.NET Web Form Designer.
            //
            InitializeComponent();
            base.OnInit(e);
        }
       
        /// <summary>
        /// Required method for Designer support - do not modify
        /// the contents of this method with the code editor.
        /// </summary>
        private void InitializeComponent()
        {   
            this.Load += new System.EventHandler(this.Page_Load);
        }
        #endregion
    }
}
Avatar billede the_party_dog Nybegynder
23. juni 2004 - 13:26 #35
skift System.Web.UI.Page ud med navnet på din class fil
Avatar billede the_party_dog Nybegynder
23. juni 2004 - 13:26 #36
og husk at sætte : Page ind i din class fil
Avatar billede the_party_dog Nybegynder
23. juni 2004 - 13:27 #37
HUSK ":" skal med, der skal stå:

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;
using System.Data.SqlClient;
using System.Data.OleDb;

namespace WebApplication1
{
    /// <summary>
    /// Summary description for Class1.
    /// </summary>
    public class Class1 : Page
    {
        public Class1()
        {}

        public DataSet GetUserInformation(string Brugernavn)
        {
            DataSet ReturnDataSet = new DataSet();
            OleDbConnection conn = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;Data Source=Tipsdata.mdb");
            OleDbDataAdapter da = new OleDbDataAdapter("SELECT * FROM tblLogin WHERE Username="+Brugernavn+"",conn);
            da.Fill(ReturnDataSet);
            return(ReturnDataSet);
        }
    }
}
Avatar billede the_party_dog Nybegynder
23. juni 2004 - 13:28 #38
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;
using System.Data.SqlClient;
using System.Data.OleDb;

namespace WebApplication1
{
    /// <summary>
    /// Summary description for WebForm1.
    /// </summary>
    public class WebForm1 : Class1
    {
        private void Page_Load(object sender, System.EventArgs e)
        {
            string bruger = "malle";
            DataSet ReceivedDataSet = new DataSet();
            ReceivedDataSet = GetUserInformation(bruger);

        }

        #region Web Form Designer generated code
        override protected void OnInit(EventArgs e)
        {
            //
            // CODEGEN: This call is required by the ASP.NET Web Form Designer.
            //
            InitializeComponent();
            base.OnInit(e);
        }
       
        /// <summary>
        /// Required method for Designer support - do not modify
        /// the contents of this method with the code editor.
        /// </summary>
        private void InitializeComponent()
        {   
            this.Load += new System.EventHandler(this.Page_Load);
        }
        #endregion
    }
}
Avatar billede the_party_dog Nybegynder
23. juni 2004 - 13:28 #39
sådan skal din side se ud...
Avatar billede tinjim Nybegynder
23. juni 2004 - 13:32 #40
JEg har prøvet at debug: (fejl i lin 29)

Line 27:             OleDbConnection conn = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;Data Source=Http://localhost/webapplication1/Tipsdata.mdb");
Line 28:             OleDbDataAdapter da = new OleDbDataAdapter("SELECT * FROM tblLogin WHERE Username="+Brugernavn+"",conn);
Line 29:             da.Fill(ReturnDataSet);
Line 30:             return(ReturnDataSet);
Line 31:         }
Avatar billede tinjim Nybegynder
23. juni 2004 - 13:33 #41
Class1:

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;
using System.Data.SqlClient;
using System.Data.OleDb;

namespace WebApplication1
{
    /// <summary>
    /// Summary description for Class1.
    /// </summary>
    public class Class1 : Page
    {
        public Class1()
        {}

        public DataSet GetUserInformation(string Brugernavn)
        {
            DataSet ReturnDataSet = new DataSet();
            OleDbConnection conn = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;Data Source=Http://localhost/webapplication1/Tipsdata.mdb");
            OleDbDataAdapter da = new OleDbDataAdapter("SELECT * FROM tblLogin WHERE Username="+Brugernavn+"",conn);
            da.Fill(ReturnDataSet);
            return(ReturnDataSet);
        }
    }
}
Avatar billede tinjim Nybegynder
23. juni 2004 - 13:33 #42
WebForm1:

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;
using System.Data.SqlClient;
using System.Data.OleDb;


namespace WebApplication1
{
    /// <summary>
    /// Summary description for WebForm1.
    /// </summary>
    public class WebForm1 : Class1
    {
        private void Page_Load(object sender, System.EventArgs e)
        {
            string bruger = "malle";
            DataSet ReceivedDataSet = new DataSet();
            ReceivedDataSet = GetUserInformation(bruger);

        }

        #region Web Form Designer generated code
        override protected void OnInit(EventArgs e)
        {
            //
            // CODEGEN: This call is required by the ASP.NET Web Form Designer.
            //
            InitializeComponent();
            base.OnInit(e);
        }
       
        /// <summary>
        /// Required method for Designer support - do not modify
        /// the contents of this method with the code editor.
        /// </summary>
        private void InitializeComponent()
        {   
            this.Load += new System.EventHandler(this.Page_Load);
        }
        #endregion
    }
}
Avatar billede the_party_dog Nybegynder
23. juni 2004 - 13:34 #43
hmm...

Jeg ved ikke om en OleDbAdapter kan fylde et dataSet... Det vil jeg da lige undersøge...
Avatar billede tinjim Nybegynder
23. juni 2004 - 13:36 #44
ok, tak
Avatar billede the_party_dog Nybegynder
23. juni 2004 - 13:37 #45
Den skriver godt nok at den kan referere rows fra en oleDb til et dataset...
Avatar billede tinjim Nybegynder
23. juni 2004 - 13:44 #46
hmmm, mystisk. Har du andre ideer? :-)
Avatar billede the_party_dog Nybegynder
23. juni 2004 - 13:48 #47
PIST.... MSSQL ;)
Avatar billede tinjim Nybegynder
23. juni 2004 - 13:49 #48
jo jo, men det vil jeg ikke også til at rode mig ud i...;-) Hvis du forstår!
Avatar billede the_party_dog Nybegynder
23. juni 2004 - 13:50 #49
Hehe... I get the picture... Er ked af det, men jeg må melde pas.. Jeg ved ikke hvordan OleDb hænger sammen, og håndtere tingene... Hvis du havde haft MSSQL, så var vi færdige nu, og du ville være en glad mand :)
Avatar billede tinjim Nybegynder
23. juni 2004 - 13:52 #50
Det må jo være det samme (i de store træk) Det er ikke en ICollection skal skal bruge?
Avatar billede the_party_dog Nybegynder
23. juni 2004 - 13:53 #51
prøv... :) Eller stil spørgsmålet igen, med alt vores kode, og giv det 50 points, der er nok en klog en der ude, som kan fortælle dig fejlen... :)
Avatar billede tinjim Nybegynder
23. juni 2004 - 13:54 #52
Jeg takker mange gange for forsøget og din tid!

Svar lige igen, så får du point!
Avatar billede the_party_dog Nybegynder
23. juni 2004 - 13:54 #53
Done
Avatar billede the_party_dog Nybegynder
23. juni 2004 - 13:55 #54
Tiden er gratis, chefen betaler den alligevel... Man lære altid noget af at hjælpe folk.. :)
Avatar billede tinjim Nybegynder
23. juni 2004 - 13:56 #55
:-)
Avatar billede the_party_dog Nybegynder
23. juni 2004 - 13:57 #56
Avatar billede the_party_dog Nybegynder
23. juni 2004 - 13:57 #57
da.fill(ReturnDataSet, "Tabel");

Prøv det :)
Avatar billede tinjim Nybegynder
23. juni 2004 - 14:04 #58
Virker ikke, samme fejl :-(
Avatar billede the_party_dog Nybegynder
23. juni 2004 - 14:05 #59
NOOOOOooooOOoOOooOoooooOOooooOOOOOOOOOOOOOOOOOOOOOOOOOOOooooooooo


Læs siden, og se om de kan forklare noget....
Avatar billede tinjim Nybegynder
23. juni 2004 - 15:55 #60
Det virker! :-)

Det var stien til db der var skidt: (nedenstående er den rigtige)
OleDbConnection conn = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;Data Source="+Server.MapPath("Tipsdata.mdb")+"");
Avatar billede burningice Nybegynder
24. juni 2004 - 21:09 #61
the_party_dog>> Lader til at du lige skal have styr på noget kode optimering... følgende er helt unødvendigt:

            DataSet ReceivedDataSet = new DataSet();
            ReceivedDataSet = GetUserInformation(bruger);

Du opretter en variabel og peger den på et nyt dataset. I næste linje tager du variablen fra før og peger den på det dataset GetUserInformation-funktionen returnerer. Hvad skete der nu med det dataset du lige oprettede?? Jo, det ligger bare i hukommelsen og fylder indtil GC'en fjerne den. Altså, lad vær med det !!

            DataSet ReceivedDataSet = GetUserInformation(bruger;

Sådan, det var meget bedre.
Avatar billede the_party_dog Nybegynder
25. juni 2004 - 07:04 #62
cyberfessor> Det ved jeg godt, men det er hvordan man ser på tingene... Jeg og andre har det bedst med at tingene bliver oprettet i starten af en funktion, og brugt senere... Det er hvordan man ser på hvad der er bedst...
Avatar billede the_party_dog Nybegynder
25. juni 2004 - 07:07 #63
Hmmm...

Sådan som jeg har lært og forstået tingene, bruger jeg da det første dataset som jeg har oprettet, men giver det først data når jeg skriver den sidste sætning. I min første linjer beskriver jeg jo hvilken variabel type jeg vil have mit navn skal referere til, og så fylder jeg den variabel med sætning nr.2....
Avatar billede the_party_dog Nybegynder
25. juni 2004 - 07:10 #64
Men skal da slet ikke kunne sige noget omkring det, jeg er selvlært, samt jeg har fået vist en masse ting af andre mennesker. Men det er fredag morgen, og mine argumenter stinker :) Men for mig at se, når vi snakker om at kode, vil jeg helst se noget kode, hvor alle variabler er defineret og initaliseret i starten, og folk så giver dem data senere i koden, end at se folk opretter tingene hist og pist....

Men det er vel en smags sag? Men jeg vil gerne vide noget mere om din begrundelse, evt. noget beskrivelse på en eller anden side, som siger at når jeg gør sådan, at mit første oprettet dataset ikke bliver brugt til noget...
Avatar billede the_party_dog Nybegynder
25. juni 2004 - 07:26 #65
okay.... Nu er mine øjne kommet lidt mere op... :)

Nu kan jeg se hvad du mener...

Hvis jeg skal gøre det sådan som jeg selv ønsker det, skal det se sådan her ud:

DataSet ReceivedDataSet;

ReceivedDataSet = GetUserInformation(bruger);

Fordi som du ganske korrekt siger, opretter jeg et område i min hukommelse, som jeg ikke bruger...
Avatar billede the_party_dog Nybegynder
25. juni 2004 - 07:35 #66
Men!!!!

Hvis jeg vil lave et dataset, og fylde det fra en SqlDataAdapter, kommer der en fejl ved brug af af den metode/måde som du har forklaret mig om.

Hvis jeg skriver:

DataSet UserSet;

SqlDataAdapter GetUserDetails = new SqlDataAdapter("SELECT * FROM Data", DBConnection);

GetUserDetails.Fill(UserSet, "Details");

DataGrid1.DataSource = UserSet;
DataGrid1.DataBind();

Jeg har selvfølgelige lavet en connection tidligere, henviser bare til den. Så "fejler" min web applikation, og siger "Use of unassigned local variable 'UserSet'
"

Men hvis jeg skriver:

DataSet UserSet = new DataSet();

SqlDataAdapter GetUserDetails = new SqlDataAdapter("SELECT * FROM Data", DBConnection);

GetUserDetails.Fill(UserSet, "Details");

DataGrid1.DataSource = UserSet;
DataGrid1.DataBind();

Opstår der ingen problemer.... Kan du forklare mig det så?
Avatar billede burningice Nybegynder
25. juni 2004 - 12:41 #67
nu roder du tingene sammen... det foregår jo i to forskellige scopes...

det er rigtigt at INDE i din funktion, GetUserInformation, skal du oprette et dataset som du så fylder... det er så DETTE dataset du returnerer.

Udenfor funktionen skal man ikke oprette et dataset, for det sørger funktionen jo for at gøre.

DataSet UserSet;
SqlDataAdapter GetUserDetails = new SqlDataAdapter("SELECT * FROM Data", DBConnection);
GetUserDetails.Fill(UserSet, "Details");

Her kalder du jo netop Fill på en variabel (UserSet) som ikke peger på noget.

DataSet ReceivedDataSet = new DataSet();
ReceivedDataSet = GetUserInformation(bruger);

Her opretter du et nyt dataset og tildeler den til variablen ReceivedDataSet. Men hov, inde i funktionen GetUserInformation bliver der jo også oprettet et dataset som bliver fyldt og returneret. Det er DETTE dataset som ReceivedDataSet ender med at pege på, altså er det første unødvendigt.
Avatar billede tinjim Nybegynder
25. juni 2004 - 13:08 #68
Måske I kan hjælpe mig med et lille spm:
Jeg har følgende web:
Tipsklub
Med en webconfig i roden.
I mappen access kan jeg der oprette en nu webconfig med følgende:
    <authentication mode="Forms">
        <forms loginUrl="WebForm1.aspx" name="FORMSAUTHCOOKIE" />
    </authentication>
   
    <authorization>
            <deny users="?"/>
    </authorization>

Dette for at styre at kun brugere der er logget ind, kan få adgang til denne mappe.
Jeg får følgende fejl:
Parser Error Message: It is an error to use a section registered as allowDefinition='MachineToApplication' beyond application level. This error can be caused by a virtual directory not being configured as an application in IIS.


Line 11:    mode="RemoteOnly"
Line 12:    />
-->Line 13:    <authentication mode="Forms">
Line 14:         <forms loginUrl="WebForm1.aspx" name="FORMSAUTHCOOKIE" />
Line 15:    </authentication>
Avatar billede tinjim Nybegynder
25. juni 2004 - 13:10 #69
og mapperne tipsklub og access er konfig i IIS som app
Avatar billede burningice Nybegynder
25. juni 2004 - 20:33 #70
<authentication> skal konfigureres på application-level... altså i den web.config-fil der ligger i roden af din applikation
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

IT-JOB