Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Portal
  • |
  • Mitglieder
Beiträge von oehrle
Thema: Nur eine typisierte DataRow für zwei strukturgleiche Tabellen ??
Am im Forum: Datentechnologien

verwendetes Datenbanksystem: <SQLEXPRESS 2008>

Hallo, stehe grad vor folgendem Problem: Ich mache Berechnungen und frage dazu Daten aus einer Tabelle ab, die als typ. DataSet eingebunden ist.
Nun muß ich genau eine strukturidntische Tabelle zusätzlich erstellen, weil ich bestimmte Informationen eben getrennt (deshalb nun zwei Tebellen) ablegen muss.

Nun möchte ich ja wie bisher die typisierte DataRow die ich nach der Suche zurück bekommen habe weiterhin in meiner Klasse verwenden. Jetzt hab ich halt zwei identische Tabellen, und ich kann die Row der neuen Tabellen nich in die Row der anderen stecken und an die Klassen übergeben, die ich verwende.

Nun, wie mach ich das am einfachsten ohen viel Code dazustricken zu müssen? Schnittstelle anlegen, oder gibts da noch etwas anderes damit ich mit zwei Tabellen arbeiten kann?

Thema: Rechner ohne Access-Installation soll auf Access-DB zugreifen, Updateproblem
Am im Forum: Datentechnologien

Hallo, ich greife über die OleDB-Verbindung zu.

Das Problem hat sich nun gelöst. Daten lesen war war kien Problem, nur Datensätze editieren und neu anlegen. Es war ein BErechtigungsproblem, diese Maschine war nicht in der Domain eingegliedert, hatte aber Leseberechtigung.
Nun funzt das, echt cooool.

Thema: Rechner ohne Access-Installation soll auf Access-DB zugreifen, Updateproblem
Am im Forum: Datentechnologien

verwendetes Datenbanksystem: <Access 2003>

Hallo, folgendes Problem. Wir haben Maschinen mit WINXP (SP3 installiert).

Auf der Maschine ist kein MS-Access installiert. Es sollen aber Daten in eine Datenbank von der Maschine aus eingefügt werden. Habe mir nun in C# eine Oberfläche gebaut, die die Daten in einem DataGridView anzeigt. Da können dann neue Datensätze eingefügt werden. Das funktioniert von meinem Rechner einwandfrei (ich habe auch Access drauf). Aber von der anderen Maschine funktionierts nicht. Ich werde gleich noch den genauen Fehler bringen.
Aber nun, ich habe das Programm auf einem driten Rechner getestet, der auch kein Access installiert hat. Da hat es geklappt. Kann es sein das da noch irgendwelche ODBC-TReiber installiert sein müssen, damit man auf Access-DB's zugreifen kann ohen Access-Installation?

Thema: C++ COM-Objekt in C#: Probleme mit Zeiger + Referenz
Am im Forum: Rund um die Programmierung

Muss ich erst mal prüfen, ob ich davon was zu sehen bekomme, da ich eine fremde DLL eingebunden habe (Verweis).
Das ist bestimmt nicht so einfach...
Werd ich prüfen und BEscheid geben.

Thema: C++ COM-Objekt in C#: Probleme mit Zeiger + Referenz
Am im Forum: Rund um die Programmierung

Hallo, ich habe Com-Objekte in aus einer C++-DLL in mein C#-Projekt eingebunden. Das hat ja nun geklappt. Dann waren Methoden mit einfachen Zeigern auf Variablen oder Arrays zu verwenden, das habe ich auch mit unsafe und fixed hinbekommen.
Nun aber mein großer Stolperstein. ICh habe diesen C++-Code:


// Pos holen und besücken...
			CComPtr<IISBEcomGdxContent_TpPos> l_pTpPos;
			int l_iTpPosCount = 0;
			l_pTp->Tp_PosGetCount(&l_iTpPosCount);
			l_pTp->Tp_PosGetObjFromIndex( l_iTpPosCount - 1, GDXIID_CONTENT_TPPOS, (LPUNKNOWN*) &l_pTpPos);

Wie setze ich das in C# um??


gdxContent_TpPos = new ISBEcomGdxContent_TpPos();

                        int iTpPosCount = 0;
                        gdxContent_Tp.Tp_PosGetCount(out iTpPosCount);
                        gdxContent_Tp.Tp_PosGetObjFromIndex(iTpPosCount - 1, "", gdxContent_TpPos);  /// Wie übergebe ich hier???

Wie mach ich das nur? Im Netz habe ich dazu auch noch nichts brauchbares gefunden.

Thema: Hintergrundfarbe ändern wenn Programm minimiert in Taskbar liegt
Am im Forum: GUI: Windows-Forms

Ich benutze WinXP, aber demnächst auch Win 7.

Thema: Hintergrundfarbe ändern wenn Programm minimiert in Taskbar liegt
Am im Forum: GUI: Windows-Forms

Hallo, habe gestern abend schon im Netz gestöbert, aber nicht passendes gefunden. Ich möchte je nach Zustand (was in meinem Programm passiert) das Taskleistenelement von meinem PRogramm die Hintergrundfarbe wechseln, oder blinkem lassen. Wo wird das eingestellt. Es gibt da zwar die Klasse Taskbar, aber die scheint damit nichts zu tun haben.
Kann mir jemand einen Tip geben wo ich was dazu finde?

Thema: COM-Komponente von C++ einbinden
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Hallo, ich habe die REgistrierung mit regsrv32 zwar durchgeführt, ob die aber wirklich durchgeführt wurde (Erfolgsmeldung kam), weiß ich nicht wie ich da prüfen kann. Das muß ich dich in der Registry nachschauen können. Aber wo??
Ich habe auch schon in Foren gegoogelt, aber nicht gescheites gefunden.

Ich deklariere die Klasse in meiner Form, und dann wird die im Konstruktor der Form instanziiert.
Eine andere Klasse, mit der ich experimentiert habe, die auch in dieser DLL ist, funktioniert. Kann das mit den Pointern zusammenhängen, die in dem MEthoden drin sind, da diese DLL aus einem CPP - Projekt entstanden ist??

Thema: COM-Komponente von C++ einbinden
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Hi, mein Fehlercode lautet

-2147221164

Wo finde ich dazu etwas??
Ín meiner DLL steht dazu nichts.

Thema: COM-Komponente von C++ einbinden
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Hallo, kann mir jemand sagen wie ich genau eine DLL einbinde, die in C++ erstellt wurde? Ich habe die DLL, und eine TLB-Datei. Wie ich soeben gelesen habe, wird die TLB-Datei bei C++ erstellt.
Ich habe die DLL in meinem PRojekt unter "Verweise" eingebunden, habe dann einach mal probiert, eine Klasse (Inetrface) zu instanziieren und damit zu arbeiten. Hat funktioniert. Dann wollte ich eine andere Klasse (Interface) instanziieren und damit arbeiten. Bei der Instanziierung kommt dann die COMException.
Habe dann im Inetrnetz nachgesehen, da hatte es oft Probleme mit BEnutzerrechten gegeben, weil die Programme auf anderen rechnern laufen sollten. Das ist bei mir erst mal nicht der Fall.

Ich habe dann die DLL auch mit regsrv32 registriert, das hat aber nicht weitergeholfen.
Kann mir jemand einen Tipp geben?

Thema: Identische WinForm mehrfach verwenden
Am im Forum: GUI: Windows-Forms

Hi FZelle, meine Nase juckt schon. Genial, das du mich ma richtig auf die Schnittstellen gehievt hast. Ich habe das zwar auch schon im Gallileo 2008 gelesen, konnte aber definitiv nicht soviel damit anfangen. Nun aber habe ich mal zwei abende darüber gelesen. Der Sinn wird mir klar, so eine Funktionalität habe ich schon öfters vermisst. damit können also die verschiedenen Klassen anpassbar und mit Gemeinsamkeiten beritgestellt werden.
Nun, mein Projekt ist erst mal ein bischen groß für diese erste VErsuche, aber ich werds probieren.
da ich bisher drei identische WinFoms hatte, und mit einem untyp. dataSet arbeite, werde ich erst mal das und die SQLAdapter über die Schnittstellen konfigurieren und an die dann gemeinsame Form übergeben.
Da ich 9 Tabellen habe und diese aber in den 3 Forms varieiren, werde ich das auch über die Schnittstellen dementsprechen konfigurieren.
Denkste die Vorgehensweise ist so OK??

Thema: Identische WinForm mehrfach verwenden
Am im Forum: GUI: Windows-Forms

Hi FZelle, du hast ja recht mit ital. Nudelgericht ;-)

Ich werde mcih mit den Interfaces beschhäftigen, das ist wohl an der Zeit. Ich habe zwei Bücher von C#, werde da wieder mal die Nase reinstecken. Die Literatur dort erklärt zwar nicht so gut, werde aber ncoh im Internet rechrechieren, damit ich das fresse (hoffe ich doch).

Thema: Identische WinForm mehrfach verwenden
Am im Forum: GUI: Windows-Forms

Hi FZelle,

ich denke da kommen wir der Sache näher. Über ein #define definiere ich zu Beginn um welche Form dass es sich handelt. Dementsprechend wird im Code auch mit #if
geprüft, welche Projektabteilung der Form entspricht, darüber wird dann auch gesteuert welche Tabellen zu welcher Form (Projektabteilung) geladen werden.

Die Statische Klasse stellt Methoden bereit, die alle Forms benutzen (mit identischem Code). Das habe ich deswegen gemacht, wenn ich daran was änern muß, damit ich das nur einmal machen muss uch nicht in jede Form neu editieren muss, verstehst du mich da richtig?

Nun, ist meine Vorgeensweise so korrekt?
Wenn ja, wie ist das mit meiner Frage aus dem Eröffnungsbeitrag? Da müßte ich wohl au fjeden Fall vererben, wenn ich eine Basisklasse haben möchte, wo ich die andern FOrms immer wieder hineinstecke, oder?

Thema: Identische WinForm mehrfach verwenden
Am im Forum: GUI: Windows-Forms

Hallo FZelle,

OOP ist für mich nicht das Fremdwort. Nur hatte ich die Frage mit Forms vererben schon mal, da war die Antwort, einfach kopieren.

Nun sind meine FOrms alle identishc imAufbau, da sind drei Panels drauf und diese werden dynamisch je nach Abteilung aus einer anderen dataTable gefüllt. Die Dinge die in dien Panels dargestellt werden sind CHeckboxen.

Nun, wenn das dann total verkehrt ist gib mir einen Ansatz. Ich habe zuerst sozusagen eine Masterform erstellt, mit der ich mal alles getestet habe. Soll ich dann diese FOrm einfach vererben? Mach mir mal ein Vorschlag.

Thema: Identische WinForm mehrfach verwenden
Am im Forum: GUI: Windows-Forms

Hallo, es war und ist meine Aufgabe, eine Verwaltung mehrer Produktionsgruppen zu erstellen, und die Planung der Gruppen in ihren Schichten (3-Schicht) darzustellen. Nun habe ich zuerst eine Produktionsgruppe erstellet, mit de ganzen datenbanken etc. usw und das funktioniert soweit alles. Dann habe ich mich an die zweite Produktionsgruppe gemacht. Ich habe alles in der DB dafür organisiert, habe dann die erste entworfenen FOrm einfach kopiert, und Kleinigkeiten angepasst.

Nun muss ich das System weiterpflegen, es kommt immer wieder etwas an Funktionalität hinzu. Außerdem muß ich noch zwei weitere Produktionsgruppen integrieren. Das heißt, wenn ich etwas ändere, muß ich das auch immer wieder in den anderen Forms ändern, bzw aus der Hauptform kopieren und in die anderen reinkopieren. Ist doch dann immer wieder viel act.

Ich habe nun auch schon eine statische Klasse erstellt, in den ich viele Methoden ausgelagert habe, und somit Änderungen nur zentral an einer Stelle ausführen muss.
Damit ich mir das Leben aber noch einfacher machen könnte, würde ich gerne im Konstruktoraufruf einer Form diese Form in die statische Klasse übergeben, damit ich dort dann auf die ganzen Controls usw. zugreifen und diese manipulieren kann. Das geht ja uach mit der Übergabe.

Nun aber zu folgendem Problem: Wenn ich jetzt 4 Forms habe, die alle aus der Hauptform resultieren, muß ich jedes mal abfragen, welche Form den gerade aktiv ist, um auf die betreffenden Controls usw. zuzugreifen können. Das ist einfach nervig, in jeder MEthode das abzufragen.
Gibt es eine Superklasse oder so etwas, wo ich sagen kann, das die WinForms immer auf die betreffende WinForm beziehen, aus der sie die Kopie sind?
Oder ist mein Ansatz komplett falsch?

Thema: Identische Form 2 x verwenden (kopieren oder vererben) ???
Am im Forum: GUI: Windows-Forms

Hi, eine Frage. Ich habe eine Planung für Systeme in einer Abteilung entwickelt. In der Abteilung werden 3 Schichten gearbeitet. Ich habe jede Schicht in einem Panel dargestellt, die Systeme (sind dann ja uch in allen drei SChichten vorhanden) habe ich als CheckBoxen dargestellt. Damit kann also der gesamte Tagesablauf dargestellt werden, was alles läuft. Nun soll ich das System auf weitere Abteilungen übertragen. Der Aufbau der Form kann identisch bleiben, nur die Tabellen auf die ich zugreife ändern sich. Kann ich das vererben? VErerben wäre doch bestimmt deswegen besser, wenn ich nachträglich in einer MEthode was ändere, dann könnte ich das in der Basisklasse machen, und würde für die anderen Forms übernommen werden. Wäre das so korrekt?
Wenn ich die Forms kopiere, muss ich ja bei jeder Form den Code ändern, wenn etwas zu änden wäre??
Wer hat eine Lösung?

Thema: Aus Zeitspanne die Wochentage ermitteln
Am im Forum: GUI: Windows-Forms

Hi, habe mir was gestrickt, war ja nicht schwer.
Ich nehme mein Zieldatum, das angenommen nächste Woche Mittwoch ist, und mein Startdatum, das heut (Dienstag) ist. Dann habe ich das über eine do.. while-Schleife ablaufen lassen.
Ich beginne am Starttag und addiere immer einen Tag drauf, und prüfe ob es eine Samstag ode Sonntag ist. Wenn nicht, wird ein Merker inkrementiert, ansonsten wird er nicht inkrementiert. So kann ich die Wochenendtage ausgrenzen.


 private int EditierzeitraumAuswerten(DateTime zielDatum)
        {
            int tageZaehler = 0;
            double merker = 0;
            DateTime tag;
            do
            {
                merker++;
                tag = DateTime.Now.AddDays(merker);
                if (tag.DayOfWeek == DayOfWeek.Saturday || tag.DayOfWeek == DayOfWeek.Sunday)
                    continue;

                tageZaehler++;

            } while (zielDatum.ToShortDateString() != tag.ToShortDateString());
                    
            
            return tageZaehler;
        }

Thema: Aus Zeitspanne die Wochentage ermitteln
Am im Forum: GUI: Windows-Forms

Hi, ich stehe gerade vor einem Problem.
Ich habe ein Startdatum und ein Enddatum, diese können je nach BEdarf variieren, das also eine Zeitspanne von mehreren Tagen dazwischen sein kann. Nun kann die Zeispanne auch über das Wochenende hinaus gehen. Ich möchte dann aus dieser Zeitspanne den Samstag und Sonntag herausnehmen, das diese Tage in meiner Zeitspannenauswertung ausgeschlossen werden.
Hat dazu jemand eine Idee? Da gibts doch bestimmt etwas fertiges, oder?
Habe mich schon dran probiert aber ohne Erfolg.

Thema: Mit StoredProcedure neue Spalte in Tabelle einfügen
Am im Forum: Datentechnologien

verwendetes Datenbanksystem: <SQLEXPRESS 2008>
Ich möchte eine stored procedure haben, die mir in der datenbanktabelle eine neue Spalte erzeugt, deren Name ich ihr im Code übergebe. Der Typ der Spalte soll als 'BIT' festegelegt werden. Wie mach ich das?
Ich habe es schon geschaft eine normale Spalte als Text anzulegen, aber die Spalte soll den Typ 'Bit' haben. Kann mir jeman helfen??
Hier mal was ic hschon gesehen habe:


ALTER PROCEDURE dbo.SpalteNeu
(
	@Spaltenname TEXT
)
	
AS


	/* SET NOCOUNT ON */

DECLARE @Proc nvarchar(1000)
SET @Proc='
	ALTER TABLE [MVtest].[dbo].[HM_komplett]
	ADD '+cast(@Spaltenname as nvarchar)+' BIT
'

EXEC(@Proc)
	-- @Spaltenname 

Thema: Inhalte von zwei generischen Listen miteinander vergleichen
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hi, habe die Klasse geändert (überschreiben von Equals() und GetHashCode())
Nun, jetzt muß ich jeden Eintrag der List in den Typ zurückcasten (CDateiInfos) und dann mit Equals auswerten. Geht das nun auch gleich mit dem Vergleich in der List??


if (listVorhandenSQLFiles.Equals(CUpdateSQL.listDateienImPool[i]))
{

}

Thema: Inhalte von zwei generischen Listen miteinander vergleichen
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hallo, ich habe ein Datenbank, die Werte aus Dateien speichert. Diese Werte der Dateien sollen immer wieder aktualisiert werden können. Diese Dateien liegen in einem Verzeichnis auf dem Server, und es weren dort neue erstellt, oder auch die vorhandenen Dateien verändert (nur der Inhalt, nicht der Dateiname).

Nun lese ich die Dateien aus dem Verzeichnis auf dem Server ein, und schreibe den Dateinamen und das letzte Änderungsdatum in eine List<T>.

Dann lese ich aus der SQL-Tabelle alle Dateiname und ihrem letzten Änderungsdatum ebenfalls in eine List<T> ein.

Dann will ich in einer Schleife prüfen, ob alle die eine generische Liste den Eintrag von der anderen generischen Liste beinhaltet ==> List<t>.Contains()

Leider funktioniert das so nicht. Ich gebe das mal an wie ich das gemacht habe.



/// hier der Klassenaufbau für die generische Struktir der Liste
public class CDateiInfos
    {
        public string Dateiname { get; set; }
        public DateTime LetzterSchreibzugriff { get; set; }
    }

/// hier schreibe ich die Dateieinträge von der SQL-Tabelle rein
List<CDateiInfos> listVorhandenSQLFiles = new List<CDateiInfos>(); 

/// hier sind die Dateien vom VErzeichnis auf dem Server drin 
/// CUpdateSQL.listDateienImPool

            for (int i = 0; i < CUpdateSQL.listDateienImPool.Count; i++)
            {
                if (listVorhandenSQLFiles.Contains(CUpdateSQL.listDateienImPool[i]))
                {
                    listGeaenderteDateien.Add(CUpdateSQL.listDateienImPool[i]);
                }

            }


So findet er jedenfalls keine Übereinstimmung, warum weiss ich nicht. Es sind jedenfalls in beiden Listen gleiche Einträge vorhanden.
Hat jemand einen Tipp. Muss ich da noch was implementieren (Schnittstelle??)

Thema: Bekomme keine Fehlerausgabe bei bei Programmabbruch
Am im Forum: Rund um die Programmierung

Danke dir für den Link. Der Fehler war was ganz dämliches, aber auchwirklich sehr gut versteckt in einer Methode bei einem Dateizugriff.

Thema: Bekomme keine Fehlerausgabe bei bei Programmabbruch
Am im Forum: Rund um die Programmierung

Hallo, habe das mal getestet. Bekomme folgende Meldung:
==> System.NullReference Exception. Object reference not set to an instance of an object

Wie komm ich da weiter dran? Problem ist, das ich auf diesen Rechnern immer nur mal kurz ran kann und kien Debugger-System drauf ist.

Thema: MonthCalendar erweitern, damit Feietage in anderer Farbe erscheinen
Am im Forum: GUI: Windows-Forms

Das mit den Standard-Bold Dates habe verwende ich schon für gesetzte Termine. Ich möchte deshalb die Feiertage in einer extra Farbe anzeigen.

Thema: MonthCalendar erweitern, damit Feietage in anderer Farbe erscheinen
Am im Forum: GUI: Windows-Forms

Hallo, hat von euch schon jemand das Control so abgeändert, das man die Feiertage in einer anderen Farbe darstellen kann als die Tage des vorigen oder kommenden Monates?
Das muß doch bestimmt irgendwie möglich sein. Überschreiben (Vererbung)??

Thema: Bekomme keine Fehlerausgabe bei bei Programmabbruch
Am im Forum: Rund um die Programmierung

Hat noch jemand eine Idee wie ich rausfinden kann, was den Rechnern fehlt? Gibt es bei Windows irgendein Log-System?

Thema: Bekomme keine Fehlerausgabe bei bei Programmabbruch
Am im Forum: Rund um die Programmierung

Hi, das hatte ich schon versucht. Habe bei den ganzen Aufrufen Try-Catch eingefügt, sowie auch das mit der DEBUG-Variante.

Wie gesagt, das Programm initialisiert sich zuerst, dann wenn diese Methode mit der List<t> aufgerufen wird, schmiert das Prog ab. Ich bekomme keinerlei Hinweise von try -- catch.

P.S. Try catch ==> ich fange die oberste Ausnahme ab, das ist die Exception. Das ist doch wohl ok, oder?

Thema: Bekomme keine Fehlerausgabe bei bei Programmabbruch
Am im Forum: Rund um die Programmierung

Hallo, habe ein Programm geschrieben, dass einigen Rechnern läuft. Nun wollte ich das Programm noch auf zwei weiteren Rechnern einrichten, das Programm beendet sich aber selbst.
Zur Verknüpfung vom Programm: Meine Releasde VErsion liegt auf einem Netzlaufwerk, und wird über eine Desktopverknüpung auf den betreffenden Rechnern eingebunden. Das funktioniert soweit.

==> Das PRogramm hat ein Problem festgestellt und muss beendet werden.
Falls Sie ihre Arbeit noch nicht gespeichert hatten, können Daten möglicherweise verloren gegangen sein.

Diese MEldung bekomme ich. Habe nun auch schon gegoogelt, und was gefunden. Mein Programm arbeitet doe PROGRAM.CS ab und initialisert die erset FORM. In der Form werden VErzeichnisse auf Bestand geprüft, und dann kommts. Ich lese Daten ein, schreibe diese Daten in eine List<T>, un da kacken die beiden Rechner ab. Framework 3.5 SP1 ist installiert, auch bei der Einstellung im VS 2008 eingestellt. Wer kann mir dabei helfen?

Thema: Untypisiertes Dataset: Update überschreibt vorigen Datensatz oder Concurrency violation
Am im Forum: Datentechnologien

Meine vorige Datenzeil wurde immer komplett null gesetzt, das hängt damit zusammen, das ich direkt vor dem AddNew() alle meine Checkboxen zuerst gelöscht habe. Das darf ich baürlich erst machen wenn die neue DataRow schon steht.
Das mit dem ConcurrencyViolation hing mit der Vergabe der automatisschen PK-ID der Tabelle zusammen. Hab ich deaktiviert, und hat gefunzt.

Thema: Untypisiertes Dataset: Update überschreibt vorigen Datensatz oder Concurrency violation
Am im Forum: Datentechnologien

verwendetes Datenbanksystem: <SQL 2008 Express>
Hi, probiere schon seit einem ganzen Tag an einem Problem beim updaten. Zuerst mal, ich verwende ein untypisiertes Dataset.
In meiner Form benutze ich zum navigieren ein BindingNavigator. Ich füge einen neuen Datensatz über die BindingSource hinzu:
_bsHM_F.Current;.AddNew();

Dann hole ich den aktuellen Datensatz in eine DataRowView:
_drv = (DataRowView) _bsHM_F.Current;

Nun trage ich alle relevante Daten in die _drv ein und mache dann das update.
Davor generiere ich noch den SQL-CommandBuilder:
_sqlcmb = new SqlCommandBuilder(_arSqladap[0]);

Dann kommt das Update:
_arSqladap[0].Update(_MVDataSet.Tables["HMF"]);

Ich hänge mal hier den Code ran, wenn ich die Daten sichere:


       private void stp_btnSave_Click(object sender, EventArgs e)
        {
            DataRowView drv = (DataRowView)_arBsSchichtTabs[0][_arBsSchichtTabs[0].Count-1];
            drv.Row.BeginEdit();
            if (drv != null)
            {
               if (Convert.ToDateTime(drv.Row["Datum"]) == Convert.ToDateTime("01.01.2000"))
                {
                    drv.Row["Datum"] = monthCal.SelectionStart.Date;
                    drv.Row["Datum"] = aktTagDtime;
                }

                drv.BeginEdit();
                foreach (Control ctrl in pnl_Frueh.Controls)
                {
                    if(ctrl is CheckBox)
                    {
                        CheckBox cbx = (CheckBox) ctrl;
                        drv[ctrl.Name] = cbx.CheckState;
                    }
                }
                drv.Row.EndEdit();
            }

            
            try
            {
                this.Validate();
                _arBsSchichtTabs[0].EndEdit();
            }
            catch (ConstraintException conexc)
            {
                MessageBox.Show("Es kann kein neuer Datensatz angelegt werden, wenn das Zugehörige Datum schon in einem \n anderen Datensatz verwendet wird. Bitte anderes Datum auswählen !!", "Datum wurde schon verwendet", MessageBoxButtons.OK, MessageBoxIcon.Stop);
                _arBsSchichtTabs[0].CancelEdit();
                return;
            }

            try
            {
                _sqlcmb = new SqlCommandBuilder(_arSqladap[0]);
                              //{
                              //    SetAllValues = false,
                              //    ConflictOption = ConflictOption.OverwriteChanges
                              //};
                _arSqladap[0].Update(_MVDataSet.Tables["HMF"]);
                _MVDataSet.Tables["HMF"].AcceptChanges();
                MessageBox.Show("Datensatz wurde korrekt übernommen !", "Aktualisierung / Eintrag erfogreich");
                
            }
            catch (SqlException sqlex)
            {
                MessageBox.Show("Es kann kein neuer Datensatz angelegt werden, wenn das Zugehörige Datum schon in einem \n anderen Datensatz verwendet wird. Bitte anderes Datum auswählen !!", "Datum wurde schon verwendet", MessageBoxButtons.OK, MessageBoxIcon.Stop);
                _arBsSchichtTabs[0].CancelEdit();

                if (monthCal.DataBindings.Control == null)
                    this.monthCal.DataBindings.Add(new System.Windows.Forms.Binding("SelectionRange", this._arBsSchichtTabs[0], "Datum", true, System.Windows.Forms.DataSourceUpdateMode.OnValidation, null, "d"));
                return;
            }
            


            if (monthCal.DataBindings["SelectionRange"] == null)
                this.monthCal.DataBindings.Add(new System.Windows.Forms.Binding("SelectionRange", this._arBsSchichtTabs[0], "Datum", true, System.Windows.Forms.DataSourceUpdateMode.OnValidation, null, "d"));

            _arBsSchichtTabs[0].Sort = "Datum ASC";
            KalenderDatumMarkieren();
            // BerechneVerbrauch();

            tsp_Speichern.Enabled = false;
        }

Ich hatte es schon soweit, dass die Datensätze korrekt abgespeichert wurden, aber der letzte Datensatz wurde immer alle Spalten in der Datentabelle auf null gesetzt. Warum?