Autor Beitrag
shacknet
Hält's aus hier
Beiträge: 14



BeitragVerfasst: Di 14.10.08 12:02 
Guten morgen,

ich stehe vor folgendem Problem:
Ich erstelle eine Liste, dieser Liste werden Werte aus einer Datenbank zugefügt. Zurzeit sind es 6 Datensätze die geladen werden.
Komischerweise wird anstatt, jedes mal ein anderer Datensatz, immer der selbe genommen.
Also in der DB siehts so aus (als BSP nur eine Spalte):
Zeile "1": a
Zeile "2": b
Zeile "3": c
Zeile "4": d
Zeile "5": e
Zeile "6": f
Nun ruft mein Programm das hübsch ab. Funktioniert auch einwandfrei. Alles Sachen werden erfolgreich geladen.
Wenn ich die Daten nun in meine Liste lade läd er IMMER nur die Zeile "6" also es sind dann 6 Zeilen in der Liste die alle den Wert f haben.

Hier mal der Code, welcher die Liste füllen soll:
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
public List<Template> TemplateList = new List<Template>();
        public void GetTemplate()
        {
            dtTemplate = sqlCon.qTemplate("*""*");
            if (dtTemplate.Rows.Count > 0)
            {                
                foreach (DataRow drTemplate in dtTemplate.Rows)
                {
                    Template.GetTemplate(new Guid(drTemplate["tet_guid"].ToString()), drTemplate["tet_name"].ToString(), drTemplate["tet_scheme"].ToString(), drTemplate["tet_pos"].ToString(), drTemplate["tet_in_pos1"].ToString(), drTemplate["tet_in_pos2"].ToString(), (int)drTemplate["tet_template"]);
                    TemplateList.Add(Template);
                }
            }
        }

Es wird die Liste "TemplateList" erstellt. diese greift auf die Klasse "Template" zu. Dieser Code hier:
ausblenden volle Höhe C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
public class Template
    {
        private Guid _Guid;
        private String _Name;
        private String _Scheme;
        private String _Position;
        private int _Template;
        private String _InPos1;
        private String _InPos2;
    
        public Guid Guid
        {
            get
            {
                return _Guid;
            }
            set
            {
                _Guid = value;
            }
        }

        public String Name
        {
            get
            {
                return _Name;
            }
            set
            {
                _Name = value;
            }
        }

        public String Scheme
        {
            get
            {
                return _Scheme;
            }
            set
            {
                _Scheme = value;
            }
        }

        public String InPos1
        {
            get
            {
                return _InPos1;
            }
            set
            {
                _InPos1 = value;
            }
        }

        public String InPos2
        {
            get
            {
                return _InPos2;
            }
            set
            {
                _InPos2 = value;
            }
        }

        public String Position
        {
            get
            {
                return _Position;
            }
            set
            {
                _Position = value;
            }
        }

        public int Template
        {
            get
            {
                return _Template;
            }
            set
            {
                _Template = value;
            }
        }


        public void GetTemplate(Guid guid, String Name, String Scheme, String Position, String InPos1, String InPos2, int Template)
        {
            _Guid = guid;
            _Name = Name;
            _Scheme = Scheme;
            _Position = Position;
            _InPos1 = InPos1;
            _InPos2 = InPos2;
            _Template = Template;
        }


Ich hoffe ihr versteht mein Problem.
Falls noch fragen offen sind, weil ich nicht genug Infos angegeben habe sagt bescheid. Ich ergänze es dann...

MfG
shacknet
lothi
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 114
Erhaltene Danke: 3



BeitragVerfasst: Di 14.10.08 14:39 
Hallo

So wie ich das sehe, legst du nicht jedes mal eine neue Instanz der Klasse an sondern überschreibst die gleiche immer wieder.


Am einfachsten übergibst du die Eigenschaftswerte im Konstruktor der Template Klasse.


ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
public void Template(Guid guid, String Name, String Scheme, String Position, String InPos1, String InPos2, int Template)  
        {  
            _Guid = guid;  
            _Name = Name;  
            _Scheme = Scheme;  
            _Position = Position;  
            _InPos1 = InPos1;  
            _InPos2 = InPos2;  
            _Template = Template;  
        }


und dann:
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
TemplateList.Add(new Template(new Guid(drTemplate["tet_guid"].ToString())
                , drTemplate["tet_name"].ToString()
                , drTemplate["tet_scheme"].ToString()
                , drTemplate["tet_pos"].ToString()
                , drTemplate["tet_in_pos1"].ToString()
                , drTemplate["tet_in_pos2"].ToString()
                , (int)drTemplate["tet_template"]));


Gruss Lothi
shacknet Threadstarter
Hält's aus hier
Beiträge: 14



BeitragVerfasst: Di 14.10.08 15:41 
user profile iconlothi hat folgendes geschrieben Zum zitierten Posting springen:
Hallo

So wie ich das sehe, legst du nicht jedes mal eine neue Instanz der Klasse an sondern überschreibst die gleiche immer wieder.


Am einfachsten übergibst du die Eigenschaftswerte im Konstruktor der Template Klasse.


Gruss Lothi


Danke für den Hinweis.
Manchmal ist man echt Blind...

Funktionier nun alles...

LG
ShacKnet