Delphi-Forum.de Delphi-Library.de
C-Sharp-Forum.de C-Sharp-Library.de
Registrieren Login Suche Hilfe Sitemap
Probleme bei Datenbank aktualisierung
spacer
Autor Nachricht
Student91
Hält's aus hier

Beiträge: 4
Dabei seit: 04.02.2010



BeitragVerfasst: Do 04.02.10 23:18  Antworten mit Zitat Beitrag melden
Hi Leute bin neu hier und hab mich mal ein bisschen umgeschaut aber leider nichts passendes zu meinem Problem gefunden. Also wenn ich Button 2 klicke soll die Datenbank aktualisiert werden das funktioniert aber nur wenn ich den Code aus der Form_Load auskommentieren diesen Code brauch ich später aber für die Suche. Es kommt immer die Fehlermeldung Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt, vielleicht kann mir ja einer von euch helfen schonmal vielen Dank im voraus!

ausblenden volle Höhe C#-Quelltext markieren
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:
106:
107:
108:
109:
namespace Datenbank
{
public partial class FormMitarbeiter : Form
{
public FormMitarbeiter()
{
InitializeComponent();
}
private OleDbConnection conn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=Bank.mdb;");
//private OleDbConnection conn = new OleDbConnection("Provider=MSDAORA.1;User ID= FOI1_Frigge_08;password=Louis;Data Source=BBS;");
private OleDbDataAdapter da = null;
private DataSet ds = null;
private DataView dv = null;


private void FormMitarbeiter_Load(object sender, EventArgs e)
{


OleDbCommand cmd = new OleDbCommand("Select * FROM Mitarbeiter", conn);
da = new OleDbDataAdapter(cmd);
DataTable dt = new DataTable("MitarbeiterListe");
conn.Open();
da.Fill(dt);
conn.Close();
dv = new DataView(dt);

foreach (DataColumn c in dt.Columns)
comboBox1.Items.Add(c.ColumnName);
comboBox1.SelectedIndex = 0;
dataGridView1.DataSource = dv;

}

public DataSet getMitarbeiter()
{
string tab = "SELECT * FROM Mitarbeiter";
da = new OleDbDataAdapter(tab, conn);
conn.Open();
DataSet ds = new DataSet();
da.Fill(ds, "Mitarbeiter");
conn.Close();
return ds;
}
public void setMitarbeiter(ref DataSet ds)
{
OleDbCommandBuilder cb = new OleDbCommandBuilder(da);
conn.Open();
da.Update(ds, "Mitarbeiter");
conn.Close();
}

private void button1_Click(object sender, EventArgs e)
{
dataGridView1.DataSource = null;
ds = getMitarbeiter();
dataGridView1.DataSource = ds;
dataGridView1.DataMember = "Mitarbeiter";
}

private void button2_Click(object sender, EventArgs e)
{


DataSet ds1 = ds.GetChanges();

if (ds1 != null)
{
try
{
setMitarbeiter(ref ds1);
ds.Merge(ds1);
ds.AcceptChanges();
MessageBox.Show("Datenbank wurde aktualisiert!");
this.Refresh();
}
catch (Exception ex)
{

MessageBox.Show(ex.Message, "Fehler");
conn.Close();
}
}
}

private void button4_Click(object sender, EventArgs e)
{


dv.Sort = comboBox1.Text;
switch (comboBox1.SelectedIndex)
{
case 0: dv.RowFilter = "Convert(MitarbeiterID,'System.String') LIKE'" + textBox1.Text + "%'";
break;
case 1: dv.RowFilter = "Convert(Bankleitzahl,'System.String') LIKE'" + textBox1.Text + "%'";
break;
case 2: dv.RowFilter = dv.Sort + " LIKE '" + textBox1.Text + "%'";
break;
case 3: dv.RowFilter = dv.Sort + " LIKE '" + textBox1.Text + "%'";
break;
case 4: dv.RowFilter = "Convert(Gehalt,'System.String') LIKE'" + textBox1.Text + "%'";
break;
case 5: dv.RowFilter = "Convert(Geburtsdatum,'System.String') LIKE'" + textBox1.Text + "%'";
break;

}
}
}
}


Moderiert von user profile iconKha: C#-Tags hinzugefügt
Private Nachricht sendenPosting in privater Nachricht zitieren
danielf
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star

Beiträge: 900
Erhaltene Danke: 14
Dabei seit: 28.01.2009
Wohnort: Stuttgart

Windows XP
C# (VS 2008)
BeitragVerfasst: Fr 05.02.10 09:10  Antworten mit Zitat Beitrag melden
Hallo und :welcome: ,

wenn du eine Fehlermeldung bekommst, wäre es sehr hilfreich für uns, wenn du diese komplett zeigst. Ich kenne den Grund für deinen Fehler, muss nun aber erstmal Zeile für Zeile deinen Code durch gehen um zu finden wo das Objekt nicht gesetzt ist. Das Objekt setzt du vermutlich in deiner Load-Methode und hast deshalb dann kein Problem wenn du den Ode dort drin hast.

ich such mal weiter ...

Wah.. endlich gefunden!

Also: Wenn du den Code aus deiner Load-Methode kommentierst wird keine Instanz deines OleDbDataAdapter erstellt (Variable da). In der Button2-Methode versuchst du über die SetMitarbeiter irgendwas komisches .. auf jedenfall übergibst du dort dem OleDbCommandBuilder die Referenz von da. Da diese auf Null zeigt (wenn du den Code im Form_Load rausnimmst) bekommst du eine NullPointException.

Hoffe das hilf dir weiter.. mich hat es nämlich viel Zeit gekostet, den Code-Wirrwarr zu ordnen.

Gruß Daniel
Private Nachricht sendenPosting in privater Nachricht zitieren Webseite dieses Mitglieds besuchen
Student91
Hält's aus hier

(Threadstarter)

Beiträge: 4
Dabei seit: 04.02.2010



BeitragVerfasst: Sa 06.02.10 18:13  Antworten mit Zitat Beitrag melden
Hallo erstmal vielen Dank für deine Antwort!! Es hilft mir leider nicht weiter, weil z.B. wenn ich den Quellcode aus der Form_load auskommentiere der Button_2click wunderbar funktioniert nur wenn ich das drinnen habe geht es nicht und ich verstehe nicht warum sorry??
Vielleicht hast du ja noch eine Idee, wenn ja würde ich mich über eine Antwort sehr freuen bis dahin vielen Dank.
Private Nachricht sendenPosting in privater Nachricht zitieren
Kha
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starhalf offtopic star
Moderator

Beiträge: 2864
Erhaltene Danke: 11
Dabei seit: 12.11.2005
Wohnort: Brackenheim

Win 7
F#, C# (VS2010)
BeitragVerfasst: Sa 06.02.10 23:57  Antworten mit Zitat Beitrag melden
Wo die Exception überhaupt auftritt, hast du uns jetzt leider immer noch nicht verraten.

_________________
>λ=
Private Nachricht sendenPosting in privater Nachricht zitieren Webseite dieses Mitglieds besuchen
Student91
Hält's aus hier

(Threadstarter)

Beiträge: 4
Dabei seit: 04.02.2010



BeitragVerfasst: So 07.02.10 00:03  Antworten mit Zitat Beitrag melden
Ja sorry hatte ich vergessen die tritt bei DataSet ds1 = ds.GetChanges(); ich versteh nicht was ich da ändern muss.
Private Nachricht sendenPosting in privater Nachricht zitieren
Kha
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starhalf offtopic star
Moderator

Beiträge: 2864
Erhaltene Danke: 11
Dabei seit: 12.11.2005
Wohnort: Brackenheim

Win 7
F#, C# (VS2010)
BeitragVerfasst: So 07.02.10 00:42  Antworten mit Zitat Beitrag melden
Wenn du davor nicht auf Button 1 gedrückt hast, ist das kein großes Wunder, oder? Mit dem Code in _Load hat das aber nichts zu tun.

_________________
>λ=
Private Nachricht sendenPosting in privater Nachricht zitieren Webseite dieses Mitglieds besuchen
Student91
Hält's aus hier

(Threadstarter)

Beiträge: 4
Dabei seit: 04.02.2010



BeitragVerfasst: Mo 08.02.10 17:11  Antworten mit Zitat Beitrag melden
Erstmal vielen Dank für die Antworten davor! Wie kann ich das machen das ich nicht vorher auf Button1 drücken muss hast du da vielleicht ne Idee oder einen Ansatz für mich?
Private Nachricht sendenPosting in privater Nachricht zitieren
Werbung ausblenden? Dann registriere Dich kostenlos. Weitere Gründe für eine Registrierung.


Werbung ausblenden? Dann registriere Dich kostenlos. Weitere Gründe für eine Registrierung.
Beiträge vom vorherigen Thema anzeigen:   
home home