Zum Inhalt springen

oxygen

Mitglieder
  • Gesamte Inhalte

    112
  • Benutzer seit

  • Letzter Besuch

  1. @Iceman346: könntest du mir da mal ein Codesegment als Beispiel, wie man direkt das DataSet verändert, posten? Hab ein Fehlerhandling eingebaut, es wird aber keine Exception ausgelöst. Ich glaube so langsam, dass ich das gleiche Problem habe, das Iceman346 beschrieben hat. Ansonsten hab ich mir auch schon überlegt, testweise die DB mal auf einen MSSQL-Server aufzusetzten und zu kucken, wie sich das ganze da verhält. Allerdings hängt da ein ziemlicher Rattenschwanz dran und nach 8h Informatik auf der Arbeit ist die Motivation nicht mehr so groß, deshalb wolle ich das erst als letzte Möglichkeit machen.
  2. Wie oben schon gesagt funktioniert das Auslesen komplett -> die Select geht. Edit: und Werte sind auch Vorhanden, sie ist also nicht leer.
  3. Also so wie ich das gelesen hab, gibt die Funktion die Anzahl der veränderten Zeilen zurück. Ausserdem hat sich auch nichts geändert, wenn ich die Datenbank anschau.
  4. Damit ihr wenigstens noch Infos bekommt, damit ihr mir vielleicht was sagen könnt: Hier der komplette Code der Form, in der ich in die DB schreiben will. Auf dem Form sind eingabe Felder (Textboxen, ComboBoxen, CheckBoxen, DateTimePicker), die über die Eigenschaften an die DataBindingSource angeknüpfts sind. using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace FWVerwaltung { public partial class Form10 : Form { public Form10() { InitializeComponent(); } private void Form10_Load(object sender, EventArgs e) { // TODO: Diese Codezeile lädt Daten in die Tabelle "feuerwehrverwaltungaccess2000DataSet.persönlich". Sie können sie bei Bedarf verschieben oder entfernen. this.persönlichTableAdapter.Fill(this.feuerwehrverwaltungaccess2000DataSet.persönlich); // TODO: Diese Codezeile lädt Daten in die Tabelle "feuerwehrverwaltungaccess2000DataSet.dienstlich". Sie können sie bei Bedarf verschieben oder entfernen. this.dienstlichTableAdapter.Fill(this.feuerwehrverwaltungaccess2000DataSet.dienstlich); } private void button1_Click(object sender, EventArgs e) { int anzahlp,anzahld = 0; persönlichBindingSource.EndEdit(); dienstlichBindingSource.EndEdit(); anzahlp = persönlichTableAdapter.Update(feuerwehrverwaltungaccess2000DataSet.persönlich); MessageBox.Show(anzahlp.ToString()); anzahld=dienstlichTableAdapter.Update(feuerwehrverwaltungaccess2000DataSet.dienstlich); MessageBox.Show(Convert.ToString(anzahld)); } } } Ich bin noch nicht dazu gekommen, irgendwas zu überprüfen oder zu überarbeiten, da ich gestern ein Dualstudium angefangen habe und daher schon im Betrieb genügend mit Informatik zu tun hab. Muss mich da erst mal n bisschen dran gewöhnen. Vielleicht kann ich ja am Wochenende mal eure Tips anwenden. Trotzdem vielen Dank und Gruß
  5. Bewusst nutze ich kein ODBC. Ich habe die Datei über eine DataSource eingebunden, diese generiert mir dann ja Table Adapter und das ganze drum herum, höchsten die macht standardmäßig ODBC. Code kann ich mehr Posten, allerdings sitze ich grade an einem anderen Rechner, mach ich aber ASAP, genau so, wie die Debugger-Meldungen nochmal anzuschauen, ist mir bis jetzt noch nichts aufgefallen. Auf jeden Fall schonmal Danke für den Tip, wo ich noch schauen sollte.
  6. ich verwende dafür immer gern die Funktion convert.toDatentyp(Variable). Funktionierte bis jetzt immer einwandfrei mit vielen Datentypen.
  7. Hallo, wie schon des Öfteren hab ich mal wieder Probleme mit dem Thema C# und Access. Diesmal ist es folgendes: Ich sitze (noch immer) an meinem Projekt "Feuerwehrverwaltung", was eine kleine Anwendung zum Verarbeiten von Personaldaten einer freiwilligen Feuerwehr werden soll. Nachdem ich festgestellt habe, dass ich lange Zeit die Access-Datenbank, die ich als Datenhaltung nutze, nicht lesen konnte, weil ich das Projekt in 64Bit kompiliert habe, habe ich nun das Problem in die andere Richtung: Ich kann Daten, die ich verändert habe, nicht in die DB zurück schreiben, sie werden einfach nicht angenommen. Hier der relevante Code dazu: private void button1_Click(object sender, EventArgs e) { int anzahlp,anzahld = 0; persönlichBindingSource.EndEdit(); dienstlichBindingSource.EndEdit(); anzahlp = persönlichTableAdapter.Update(feuerwehrverwaltungaccess2000DataSet.persönlich); MessageBox.Show(anzahlp.ToString()); anzahld=dienstlichTableAdapter.Update(feuerwehrverwaltungaccess2000DataSet.dienstlich); MessageBox.Show(Convert.ToString(anzahld)); } Die Datenbank besteht aus 2 Tabellen: persönlich und dienstlich. Wie zu sehen ist, habe ich jeweils einen Table Adapter. anzahlp und anzahld dienen lediglich dazu, schnell überprüfen zu können, ob die Daten geschrieben wurden. Nun zu den Rahmenbedingungen: Ich entwickle unter Visual Studio 2008 auf einem Rechner mit Windows 7 64Bit Home Premium, die Access-DB ist im Format 2000, aber unter 2007 geschrieben. Dies ist so, damit andere die DB selbst auch öffnen können, wenn nötig. Woran könnte das liegen, hab schon die Berechtigungen der Access-Datei überprüft, aber eigentlich hat jeder Schreibrechte. Habe vor Kurzem den Tipp bekommen, mal die Eigenschaften in Access zu überprüfen, hab da aber nix gefunden, was mich weiter gebracht hat. Ich hoffe, ihr könnt mir einen Tip geben, damit das Projekt endlich mal fertig wird, es fehlen wirklich nur noch die Funktionen einen Eintrag zu ändern und einen neuen Hinzuzufügen. Gruß und schonmal danke
  8. ich denke mal, dass du ein Programm hast, bei dem du keine Eingabe machst, oder? Wenn du vor den return 0 - Befehl in deiner Main-Funktion ein Getch() (benötigt conio.h, mein ich) anhängst, bleibt das Fenster so lange offen, bis du eine Taste drückst. Ich hoffe, ich hab dein Problem richtig eingeschätzt und das mit der Bibliothek noch richtig im Kopf.
  9. oxygen

    Aus C# Xml Serialisieren

    Das ist normales Verhalten der Serialisier-Funktion. Ich hab das in nem Projekt so gelöst: Beim Start alles in ein Array des Objekts deserialisiert, dabei den Index des Arrays mitgezählt. Beim Speichern das neue Objekt in den nächsten freien Index gesteckt und dann das komplette Array serialisiert. Ist zwar etwas ressourcenaufwengiger als nur das neue Objekt irgentwie zu serialisieren, aber für meine Zwecke hat's gereicht.
  10. Da bei mir eine Milcheiweis-Allergie festgestellt wurde, trinke ich meinen Kaffee nur mit etwas Zucker/Süßstoff. Irisch (mit Whiskey) mag ich ihn auch sehr, aber das ist die Ausnahme, also wirklich nur dann, wenn ich sowohl Koffein brauch als auch Alkohol will zum Beispiel auf Abifahrt war das sehr wilkommen. Da ich ja wie oben schon gesagt keine Milch rein tun kann, hat sich meine Vorliebe für Espresso noch gesteigert, schmeckt einfach nicht so verwässert, ansonsten eben schwarz gesüsst oder, aber nur ganz selten, mit Sojamilch.
  11. genau deshalb haben wir uns ja dagegen und für david.fx entschieden, der pop3 von haus aus kann und nicht so Wartungsintensiv ist. Nen Verteiler brauchen wir halt und mit Hamster bzw. mittlerweile Public Share Folder, wie wir momentan fahren hat das so langsam einfach keinen Wert mehr.
  12. Zerreist mich jetzt nicht in der Luft, wenn es doch nicht stimmen sollte, aber meines Wissens nach funktioniert es nicht, dass du mit Exchange mails vom Server des Providers abholst, weil Exchange kein POP3 unterstützt. Sind grade im Planungsbüro meines Vaters (6 Arbeitsplätze) dabei, das Neztwerk und den Mailverteiler neu aufzuziehen und haben uns genau deshalb gegen Exchange entschieden, da wir einen eigenen Mailserver laufen lassen müssten, was Exchange zwar kann, aber dafür eine statische Internet IP und einiges an Wartungszeit benötigt. Haben uns deshalb für David.fx von ToBit entschieden. Wenn dieses Wissen veraltet ist, lassts mich wissen, aber von dem Untenehmen, das die Einrichtung vornimmt hab ich das so gesagt bekommen.
  13. Da du eine variable mit dem Typ int verwendest, sind Buchstaben nicht erlaubte Werte, deshalb steigt auch das Programm dann aus. Wenn ich jetzt nicht zu kompliziert denke, musst du den Fehler, der abgefeuert wird, wenn deine Eingabe einen ungültigen Wert hat, abfangen und entsprechend in deine Schleife springen. Schau mal Diesen Thread zum Thema an. Hab ihn nicht ganz durchgelesen, aber Klotzkopp hat da auch was interessantes Geschrieben:
  14. Hab da nen Fehler entdeckt: else if ( rechenart >= 4) { cout<< "Fehler,es sind nur Zahlen von 1-4 zulaessig!"<<endl; cout<<endl; continue; } Du nimmst hier die 4 auch mit wegen >=, allerdings willst du sie ja in deiner Auswahl mit drin haben, das = muss also weg. Ausserdem brauchst du die elseif nicht unbedingt, ne normale else reicht auch, da du ja vorher 1-4 Aussortierst und alle anderen Werte ungültig sind. Anders wär das jetzt, wenn du beispielsweise sagen willst, ob ein zu niedriger oder zu hoher Wert eingegeben worden ist. Um weiter zu Rechnen musst du vor der Eingabe der Zahlen verzweigen und überprüfen, ob du im ersten durchlauf bist oder nicht (wie von Klotzkopp beschrieben) und je nachdem entweder deinen bestehenden Ablauf verwenden oder nur eine Zahl einlesen und diese mit deinem vorigen Ergebnis verrechnen, also entweder mit der Variable ergebnis direkt rechnen, was aber unübersichtlich werden kann oder dein Ergebnis in eine der "zahl"-Variablen schreiben.
  15. Cool, danke für den Tip! Hört sich interessant an, vor allem, weil ichs im Moment nicht gebacken bekomm, aus dem Projekt in die DB zu schreiben, vielleicht hilft mir das ja weiter.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...