Laden...

Forenbeiträge von Andreas@Tricept Ingesamt 289 Beiträge

14.10.2016 - 14:52 Uhr

Hallo,

für meine Website möchte ich auf der ersten URL Ebene eine Stadt angeben können.
Der Stadtname wäre aber nur der Parameter für mein Stadtcontroller.
Auf der ersten Ebene habe ich ansonsten natürlich auch andere Views und Controllerzugriffe.
Daher kann ich die Erste Ebene ja nicht dynamisch gestalten.

Meine Lösung sieht derzeit so aus:


            using (StadtController c = new StadtController())
            {
                foreach (var city in c.GetAvailableCities())
                {
                    routes.MapRoute(
                        name: city.Name,
                        url: city.Name,
                        defaults: new { controller = "Stadt", action = "Index", city = city.Name }
                    );
                }
            }

Das funktioniert auch, nur ist das der Bestpractice?

Die Alternative


            routes.MapRoute(
                name: "Stadt",
                url: "{city}",
                defaults: new { controller = "Stadt", action = "Index"}
            );

funktioniert dann nur für den Stadtcontroller. Andere Controller die auf die erste Ebene eingeschränkt sind gehen dann nicht.

Habt ihr Tipps für mich?

24.04.2015 - 17:41 Uhr

Die einzigen Pfade die ich eingetippt habe sind doch die hier:

    
    <script src="cordova.js"></script>
    <script src="scripts/angular.js"></script>
    <script src="scripts/angularApp.js"></script>

Die stimmen eigentlich. Cordova ist zwar nicht auf Top-Ebene vorhanden soll aber zur Laufzeit da sein, hab ich zumindest gelesen.
Und meine Datei heisst eigentlich angularApp.ts <- eine Typescript datei, aber im Hintergrund wird doch auch an der Stelle eine js Datei erzeugt die ich referenzieren muss oder?
Oder bin ich auf dem Holzweg. Bitte auch wenn das ein absolutes Newbie Problem ist, ich sehe kein Problem...

24.04.2015 - 17:32 Uhr

Danke für die guten Tipps. Würdest du dann auch empfehlen NodeJs zu verwenden?

Hier der Auszug aus dem Fehlerlog:

Ripple :: Environment Warming Up (Tea. Earl Gray. Hot.)
File: ripple.js, Line: 37, Column: 13059
cordova :: Initialization Finished (Make it so.)
File: ripple.js, Line: 37, Column: 13059
Failed to load resource: the server responded with a status of 404 (Not Found)
File: favicon.ico, Line: 0, Column: 0
Failed to load resource: the server responded with a status of 404 (Not Found)
File: angular.js, Line: 0, Column: 0
Failed to load resource: the server responded with a status of 404 (Not Found)
File: moment.js, Line: 0, Column: 0
Failed to load resource: the server responded with a status of 404 (Not Found)
File: angular-locale_de.js, Line: 0, Column: 0
Failed to load resource: the server responded with a status of 404 (Not Found)
File: AngularApp.js, Line: 0, Column: 0
Ripple :: Environment Warming Up (Tea. Earl Gray. Hot.)
File: ripple.js, Line: 37, Column: 13059
cordova :: Initialization Finished (Make it so.)
File: ripple.js, Line: 37, Column: 13059
Failed to load resource: the server responded with a status of 404 (Not Found)
File: favicon.ico, Line: 0, Column: 0
Ripple :: Environment Warming Up (Tea. Earl Gray. Hot.)
File: ripple.js, Line: 37, Column: 13059
Failed to load resource: the server responded with a status of 404 (Not Found)
File: favicon.ico, Line: 0, Column: 0
cordova :: Initialization Finished (Make it so.)
File: ripple.js, Line: 37, Column: 13059
Ripple :: Environment Warming Up (Tea. Earl Gray. Hot.)
File: ripple.js, Line: 37, Column: 13059
cordova :: Initialization Finished (Make it so.)
File: ripple.js, Line: 37, Column: 13059
Ripple :: Environment Warming Up (Tea. Earl Gray. Hot.)
File: ripple.js, Line: 37, Column: 13059
cordova :: Initialization Finished (Make it so.)
File: ripple.js, Line: 37, Column: 13059
Failed to load resource: the server responded with a status of 404 (Not Found)
File: favicon.ico, Line: 0, Column: 0
Ripple :: Environment Warming Up (Tea. Earl Gray. Hot.)
File: ripple.js, Line: 37, Column: 13059
cordova :: Initialization Finished (Make it so.)
File: ripple.js, Line: 37, Column: 13059
Failed to load resource: the server responded with a status of 404 (Not Found)
File: favicon.ico, Line: 0, Column: 0
Ripple :: Environment Warming Up (Tea. Earl Gray. Hot.)
File: ripple.js, Line: 37, Column: 13059
cordova :: Initialization Finished (Make it so.)
File: ripple.js, Line: 37, Column: 13059

24.04.2015 - 16:49 Uhr

Hallo,

ich möchte eine Cross-Plattform App schreiben und habe mir schon diverse Tutorials und Videos angeschaut, bekomme es aber auf der grünen Wiese selber nicht hin was ich sehe.
Ich komme aus der C# Welt und habe mir einen Web-API Server Service gebaut und versuche nun mit diesem meine App zu befüllen und zu Starten, stoße doch seit zwei Tagen schon beim Start auf Probleme die ich einfach nicht korregiert kriege.

Ich will daher mal von Anfang an beschreiben was meine Schritte sind:

  1. Ich erstelle ein neues Apache Cordova Projekt in VS2013
  2. Importiere ein paar JavaScript und TypeScript Packe im PM von VS.
    2.1 Install-Package Angular.js
    2.2 Install-Package Angularjs.typescript.definitelytyped
    2.3 Install-Package JQuery.js
    2.4 Install-Package jquery.typescript.definitelytyped
    2.5 Install-Package bootstrap.js
    2.6 Install-Package bootstrap.typescript.definitelytyped
    (Namen aus dem Gedächtnis)
  3. Erstelle ein TypeScript im scripts Ordner mit dem Namen angularApp:

module Snip {

    //ng
    var app = angular.module("Snip", []);
    app.controller("HomeCtrl", function ($scope, $http, $q) {
        $scope.vm = new HomeVM($scope, $http, $q);
    });

    var INTEGER_REGEXP = /^\-?\d*$/;
    app.directive('integer', function () {
        return {
            require: 'ngModel',
            link: function (scope, elm, attrs, ctrl) {
                ctrl.$parsers.unshift(function (viewValue) {
                    if (INTEGER_REGEXP.test(viewValue)) {
                        // it is valid
                        ctrl.$setValidity('integer', true);

                        return viewValue;
                    } else {
                        // it is invalid, return undefined (no model update)
                        ctrl.$setValidity('integer', false);
                        return undefined;
                    }
                });
            }
        };
    });

    export class CategoryVM {
        public Name: string;
        public Description: string;
        public Position: number;
        public Color: number;
        public Id: string;
        public Selected: boolean;

        constructor(category: any) {
            this.Id = category.Id;
            this.Name = category.Name;
            this.Description = category.Description;
            this.Color = category.Color;
            this.Position = category.Position;
        }
    }

    export class HomeVM {

        public categories: Array<CategoryVM> = new Array<CategoryVM>();
        public selectedCategorie: CategoryVM;
        public categoryFilter: string;
        public categoryDescriptionFilter: string;

        private scope: any;
        private http: ng.IHttpService;
        private q: ng.IQService;
        public state: string = "Category";

        public message: string;

        public SetState(state: string) {
            this.state = state;
        }

        constructor(scope: any, http: ng.IHttpService, q: ng.IQService) {
            this.scope = scope;
            this.q = q;
            this.http = http;
        }

        public selectCategory(idx: number) {
            for (var i = 0; i < this.categories.length; i++) {
                var f = this.categories[i];
                if (i == idx) {
                    f.Selected = true;
                    this.selectedCategorie = f;
                }
                else {
                    f.Selected = false;
                }
            }
        }

        private processCategories(p) {
            this.categories = new Array<CategoryVM>();

            if (angular.isArray(p)) {

                for (var i = 0; i < p.length; i++) {
                    var category = p[i];
                    var pVM = new CategoryVM(category);
                    this.categories.push(pVM);
                }
            }
            else {
                var pVM = new CategoryVM(p);
                this.categories.push(pVM);
            }
        }

        public load(): ng.IPromise<any> {
            var defered = this.q.defer<any>();
            var params: any = {};
            var that = this;

            this.http.get("http://localhost:62191/tables/Category")
                .then((result) => {

                var categories = result.data;
                this.processCategories(categories);
                that.scope.$apply();
                defered.resolve(null);
            }).catch((p) => {
                this.message = "Fehler: " + p;
                defered.reject(null);
            });
            return defered.promise;
        }
    }
} 

  1. Passe meine Index.html an:

<!DOCTYPE html>
<html ng-app="Snip">
<head>
    <title>Test</title>
    <script src="cordova.js"></script>
    <script src="scripts/angular.js"></script>
    <script src="scripts/angularApp.js"></script>
</head>
<body>
    <div>
        <table ng-controller="HomeCtrl" ng-show="vm.categories.length &gt; 0">
            <tr>
                <th>Id</th>
                <th>Name</th>
                <th>Beschr</th>
                <th>Position</th>
            </tr>
            <tr ng-repeat="f in vm.categories" ng-class="{ selected: f.Selected }">
                <td>{{f.Id}}</td>
                <td>{{f.Name}}</td>
                <td>{{f.Description}}</td>
                <td>{{f.Position}}</td>
                <td><a href="#" ng-click="vm.selectCategory($index)">Auswählen</a></td>
            </tr>
        </table>
    </div>
</body>
</html>

  1. Starte die App. Er sagt mir das er alle Resourcen Dateien nicht laden konnte und zeigt mir kein Inhalt an. Was ist falsch? Ich verstehe das nicht. In die Script datei springt er nicht. Ich habe da diverse Breakpoints eingebaut...
30.09.2014 - 11:08 Uhr

Zur Info: Ich habe eine Möglichkeit gefunden. Man kann bei den DataPoints der jeweiligen Series die X-Position bestimmen. Diese lässt sich auch als Gleitkommazahl definieren, was dann eine überlappung zur Folge hat.
Thema ist also durch. Außer jemand kennt eine einfachere Lösung, als es selbst zu berechnen.

26.09.2014 - 15:54 Uhr

Hallo,

ich habe Probleme beim MS Chart eine Überlappung/Uberlagerung der Balken hinzubekommen, so wie es auch im Excel möglich ist. Habe ein Screen beigefügt.

Kann man das irgenwie einstellen bzw. kann man die Abstände der Balken einstellen oder die Position wo die Balken jeweils liegen auf der X-Achse?

Grüße
Andreas

16.10.2013 - 12:21 Uhr

Danke für die Lösung ! 👍

Hier die Lösung im Code:


            chart2.Series[0].Points.Add(10);
            chart2.Series[0].Points.Add(20);
            chart2.Series[0].Points.Add(30);
            chart2.Series[0].Points.Add(25);

            chart2.ChartAreas[0].AxisX.CustomLabels.Add(0, 2.5, "Hannover", 1, System.Windows.Forms.DataVisualization.Charting.LabelMarkStyle.Box);
            chart2.ChartAreas[0].AxisX.CustomLabels.Add(2.5, 5, "Berlin", 1, System.Windows.Forms.DataVisualization.Charting.LabelMarkStyle.Box);
            chart2.ChartAreas[0].AxisX.CustomLabels.Add(0, 2, "Hauptstr", 0, System.Windows.Forms.DataVisualization.Charting.LabelMarkStyle.Box);
            chart2.ChartAreas[0].AxisX.CustomLabels.Add(1, 3, "Bahnhofstr", 0, System.Windows.Forms.DataVisualization.Charting.LabelMarkStyle.Box);
            chart2.ChartAreas[0].AxisX.CustomLabels.Add(2, 4, "Königsweg", 0, System.Windows.Forms.DataVisualization.Charting.LabelMarkStyle.Box);
            chart2.ChartAreas[0].AxisX.CustomLabels.Add(3, 5, "Hofstr", 0, System.Windows.Forms.DataVisualization.Charting.LabelMarkStyle.Box);

15.10.2013 - 15:31 Uhr

Hallo,

kurze Frage, hoffe ich 😉.
Ich habe bisher keine Möglichkeit gefunden beim
System.Windows.Forms.DataVisualization.Charting.Chart die X-Achse Labels zu gruppieren wie es in Excel sonst geht. Siehe Bild.

Weiss jemand ob diese Möglichkeit existiert?

26.09.2013 - 10:07 Uhr

Hallo,

ich habe das Problem das ich an irgendeiner Stelle nicht korrekt User-Controls freigebe (dispose). Dadurch wächst die Anzahl an Benutzerobjekten bei Laufzeit des Betriebes stetig an. Ich finde nur diese Stelle nicht. Gibt es eine Möglichkeit diese User-Control die kein Parent haben aber auch nicht disposed sind zu ermitteln.
Also vielleicht auch alle erstellten Controls der Anwendung irgendwie zu sammeln, damit ich mir die mal anschauen kann? Kennt ihr da einen Ansatz?

Viele Grüße
Andreas

26.08.2013 - 12:03 Uhr

Hallo zusammen,

wir vertreiben eine Software mit Excelanbindung. Ein Kunde hat Excel 2003 im Einsatz und hat auf 2010 gewechselt und bekommt nun die im Anhang verzeichnete Fehlermeldung.

Es gab bereits andere Kunden die gewechselt haben und wir versuchen auch das Problem nachzustellen, bekommen das aber nicht hin.

Wir haben die Interop-DLL's nochmals ausgeliefert, die Office PIA's für 2010 nachinstalliert, aber uns fehlt gerade der Ansatz was falsch sein könnte...

Habt ihr vielleicht irgendeine Idee wo man weiter ansetzen kann?

01.02.2013 - 09:34 Uhr

Oh super vielen vielen Dank euch. Bin leider bei meiner Suche nicht auf die SqlBulkCopy gekommen, weil ich Bulk automatisch mit einem Datei gestützten Import impliziert habe.

Nächstes mal suche ich besser ! 😉

31.01.2013 - 16:20 Uhr

Verwendete DB: MSSQL

Hallo zusammen,

ich habe einen Fatclient und der hat eine Importmöglichkeit. Einige CSV-Dateien von Kunden haben mehrere Millionen Einträge die ich zu Hunderttausenden verdichte und importiere. Mittels BULK System läuft das wunderbar und der gesamte Vorgang dauert nur wenige Minuten.
Das Problem mit dem BULK habe ich leider bei Kunden die ihren Server ausgelagert haben und der Fatclient keinen Dateizugriff auf den DB-Server hat. Also ich kann keine Datei im Verfügbarkeitsbereich des Servers ablegen. Die BULK-Datei muss ja zwingend auf dem PC des Servers liegen.

In Oracle bietet der TableAdapter schon eine Massendatenspeicherung an die zwar etwas langsamer als BULK ist, jedoch auch ein zufriedenstellendes Ergebnis liefert. Gibt es auch für SQL eine Möglichkeit Massendaten über die Verbindung direkt an den Server zu schicken? Mit einzelnen Commands oder DataSets warte ich mir einen Wolf.

Grüße
Andreas

03.12.2012 - 13:39 Uhr

Ich bekomme leider beim Deserialisieren einen Fehler.
Es handelt sich um eine Datei die der Kunde erstellt (Serialisiert) hat, jedoch nicht mehr verwenden kann (Da ein Deserialisierungsfehler aufgetaucht ist).
Ich wollte die Datei nun reparieren, rätsel aber wo hier der Fehler liegt.
Wenn er es Serialisiert hat, warum kann ich es dann nicht Deserialisieren?

03.12.2012 - 11:01 Uhr

Hallo,

ich bekomme beim Deserialisieren einer Datei eine Fehlermeldung die ich nicht deuten kann: > Fehlermeldung:

"System.Runtime.Serialization.SerializationException" wurde aufgefangen.
Message=Auf das Objekt mit der ID 4349 wurde verwiesen, aber es ist nicht vorhanden.
Source=mscorlib
StackTrace:
bei System.Runtime.Serialization.ObjectManager.GetCompletionInfo(FixupHolder fixup, ObjectHolder& holder, Object& member, Boolean bThrowIfMissing)
bei System.Runtime.Serialization.ObjectManager.CompleteObject(ObjectHolder holder, Boolean bObjectFullyComplete)
bei System.Runtime.Serialization.ObjectManager.DoFixups()
bei System.Runtime.Serialization.Formatters.Binary.ObjectReader.Deserialize(HeaderHandler handler, __BinaryParser serParser, Boolean fCheck, Boolean isCrossAppDomain, IMethodCallMessage methodCallMessage)
bei System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Deserialize(Stream serializationStream, HeaderHandler handler, Boolean fCheck, Boolean isCrossAppDomain, IMethodCallMessage methodCallMessage)
bei System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Deserialize(Stream serializationStream)
bei BPData.Data.Manager.ObjectSerializer1.GetObjektFromBinary(Byte[] pArray) in C:\Projekte\Management Cockpit\MCockpit 4.1\BPData\Data\Manager\ObjectSerializer.cs:Zeile 79. bei BPData.Data.Manager.ObjectSerializer1.Load() in C:\Projekte\Management Cockpit\MCockpit 4.1\BPData\Data\Manager\ObjectSerializer.cs:Zeile 93.
InnerException:

Wo habe ich beim Serialisieren einen Fehler gemacht? Und kann ich diese Datei dennoch Deserialisieren? Gibt es eine Art Fehlertoleranz.
Es handelt sich hier um eine größere Datei wo viel Arbeit verloren gehen würde.
Kennt ihr diese Meldung und könnt mir einige Hinweise geben?

05.09.2012 - 14:45 Uhr

Hallo, ich habe ein Benutzersteuerelement aus insgesamt 3 Controls die den Focus haben können. Wie kann ich es implementieren das der Lostfocus des gesamtcontrols erst dann gefeuert wird, wenn der Focus auf keinen der 3 Controls erfolgt?

19.03.2012 - 15:46 Uhr

Ah vielen Dank ! Hört sich sehr sinnvoll an. Hast mir geholfen.

19.03.2012 - 15:34 Uhr

Deinen Tipp verstehe ich leider nicht.

Ich habe in verschiedenen Dokus gelernt das man stark typisierte Views verwenden soll und per VS2010 Assistent werden diese dann auch automatisch generiert.
Also ich gebe ein typisiertes Objekt weiter, welches ich bearbeiten kann und mit dem Submit validiere ich und speicher es.

Wie meinst du das denn? Kannst du mir ein Codebeispiel geben?

19.03.2012 - 15:07 Uhr

Hallo, danke erstmal für die Antworten.

Ich habe kein Problem beim speichern des Profils.
So speichert er mir diesen Teil vollkommen korrekt ab:


KanoProfile profile = (KanoProfile) KanoProfile.Create(User.Identity.Name);
            profile.Nachname = "Schulz";
            profile.Save();

Sprich in der DB kommt ein entsprechender Eintrag mit meinem Wert. Wenn der Benutzer sich einloggt hat er in seinem Profil auch den Nachnamen "Schulz" eingetragen.
Wenn ich diesen an die View übergebe wird er sogar korrekt angezeigt.

ABER. Wenn ich in der View das supmit verwende komme ich sofort zu diesem Fehler.
Also das Binding mit meinem Objekt und der Oberfläche scheint irgendein Problem zu verursachen. Die Username Property ist schon befüllt bevor ich das Profil an die View übergebe....

deswegen weiss ich leider überhaupt nicht woran das liegen kann?

Der Fehler wird außerhalb meines Codings geworfen.
Aber wenn ich selbst das DefaultProfile verwende, also ein neues VS MVC 3 Projekt erstelle und der View das aktuelle Profil übergebe und submit betätige ohne etwas zu ändern, bekomme ich dort auch eine Fehlermeldung. Ist das wohl ein Fehler im Framework?

19.03.2012 - 14:21 Uhr

Erstmal komme ich garnicht in das Save. Das Save ist eine Framework-funktion von ProfileBase. Die Profileigenschaften werden dann in die von VS2010 erstellte DB geschrieben und autom. wieder geladen.

Ich wollte das Profil nicht alleine erstellen, aber mir bleibt ja keine wahl oder?

19.03.2012 - 14:09 Uhr

Ich wüsste nicht woran: Hier ist Code meiner View:



@model Kano.Models.KanoProfile


@{
    ViewBag.Title = "Index";
}

<h2>Index</h2>

<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script>

@using (Html.BeginForm()) {
    @Html.ValidationSummary(true)

    <fieldset>
        <legend>KanoProfile</legend>

            @Html.EditorFor(model => model.Vorname)

        <p>
            <input type="submit" value="Save" />
        </p>
    </fieldset>
}

<div>
    @Html.ActionLink("Back to List", "Index")
</div>

Zu der Submit Methode kommt er wie gesagt nicht. Nach dem Click kommt es soft zur Meldung. Diese View ist automatisch generiert.

Mein Submit (Auch wenn er nicht erreicht wird):

        
        [HttpPost]
        public ActionResult Index(KanoProfile profile)
        {
            profile.Save();
            return View();
        }

19.03.2012 - 11:06 Uhr

Hallo Zusammen,

ich arbeite mit dem MVC 3 (Razor) Modell und habe mir ein CustomProfil erstellt. Dazu habe ich in der Webconfig folgendes ergänzt:

 <profile inherits="Kano.Models.KanoProfile"> 

Meine Klasse ist zunächst simpel gehalten:


    public class KanoProfile : ProfileBase
    {
        public string Nachname
        {
            get
            {
                return GetPropertyValue("Nachname") as string;
            }
            set
            {
                SetPropertyValue("Nachname", value);
            }
        }
     }

Ich versuche nun per Controller ein Profil zu erstellen und zu bearbeiten:
dazu verwendende ich folgende Controller-Methode:


        public ActionResult Index()
        {
            KanoProfile profile = (KanoProfile) KanoProfile.Create(User.Identity.Name);
            return View(profile);
        }

In meinem Formular kann ich das Profil bearbeiten. Mit dem Submit Button bekomme ich jedoch immer einen Fehler (Fehler weiter unten zu sehen).

Zu meiner Submit Funktion Index(KanoProfile profile) komme ich garnicht erst.
Ich habe bemerkt das es nicht an meinem CustomProfile hängt, denn wenn ich den DefaultProfile verwende bekomme ich die gleiche Meldung.
Wenn ich das Profil im Code bearbeite und speichere funktioniert alles anstandslos.
also z.B. so:


        public ActionResult Index()
        {
            KanoProfile profile = (KanoProfile) KanoProfile.Create(User.Identity.Name);
            profile.Nachname = "Schulz";
            profile.Save();
            return View(profile);
        }

Das Profil wird dann auch in die DB geschrieben und wird auch normal geladen. Warum klappt es denn mit dem Binding der View nicht?

Fehler:

Serverfehler in der Anwendung /.

Der Wert darf nicht NULL sein.
Parametername: username

Beschreibung: Unbehandelte Ausnahme beim Ausführen der aktuellen Webanforderung. Überprüfen Sie die Stapelüberwachung, um weitere Informationen über diesen Fehler anzuzeigen und festzustellen, wo der Fehler im Code verursacht wurde. 

Ausnahmedetails: System.ArgumentNullException: Der Wert darf nicht NULL sein.
Parametername: username

Quellfehler: 

Beim Ausführen der aktuellen Webanforderung wurde einen unbehandelte Ausnahme generiert. Informationen über den Ursprung und die Position der Ausnahme können mit der Ausnahmestapelüberwachung angezeigt werden.

Stapelüberwachung: 


[ArgumentNullException: Der Wert darf nicht NULL sein.
Parametername: username]
   System.Web.Util.SecUtility.CheckParameter(String& param, Boolean checkForNull, Boolean checkIfEmpty, Boolean checkForCommas, Int32 maxSize, String paramName) +2385917
   System.Web.Profile.SqlProfileProvider.FindProfilesByUserName(ProfileAuthenticationOption authenticationOption, String usernameToMatch, Int32 pageIndex, Int32 pageSize, Int32& totalRecords) +39
   System.Web.Profile.ProfileBase.RetrieveDates() +85
   System.Web.Profile.ProfileBase.get_LastActivityDate() +21

[TargetInvocationException: Der Eigenschaftenaccessor LastActivityDate für das Kano.Models.KanoProfile-Objekt hat folgende Ausnahme verursacht: Der Wert darf nicht NULL sein.
Parametername: username]
   System.ComponentModel.ReflectPropertyDescriptor.GetValue(Object component) +400
   System.Web.Mvc.<>c__DisplayClassb.<GetPropertyValueAccessor>b__a() +18
   System.Web.Mvc.ModelMetadata.get_Model() +19
   System.Web.Mvc.<Validate>d__1.MoveNext() +154
   System.Web.Mvc.<Validate>d__5.MoveNext() +318
   System.Web.Mvc.DefaultModelBinder.OnModelUpdated(ControllerContext controllerContext, ModelBindingContext bindingContext) +139
   System.Web.Mvc.DefaultModelBinder.BindComplexElementalModel(ControllerContext controllerContext, ModelBindingContext bindingContext, Object model) +66
   System.Web.Mvc.DefaultModelBinder.BindComplexModel(ControllerContext controllerContext, ModelBindingContext bindingContext) +1367
   System.Web.Mvc.DefaultModelBinder.BindModel(ControllerContext controllerContext, ModelBindingContext bindingContext) +449
   System.Web.Mvc.ControllerActionInvoker.GetParameterValue(ControllerContext controllerContext, ParameterDescriptor parameterDescriptor) +317
   System.Web.Mvc.ControllerActionInvoker.GetParameterValues(ControllerContext controllerContext, ActionDescriptor actionDescriptor) +117
   System.Web.Mvc.ControllerActionInvoker.InvokeAction(ControllerContext controllerContext, String actionName) +343
   System.Web.Mvc.Controller.ExecuteCore() +116
   System.Web.Mvc.ControllerBase.Execute(RequestContext requestContext) +97
   System.Web.Mvc.ControllerBase.System.Web.Mvc.IController.Execute(RequestContext requestContext) +10
   System.Web.Mvc.<>c__DisplayClassb.<BeginProcessRequest>b__5() +37
   System.Web.Mvc.Async.<>c__DisplayClass1.<MakeVoidDelegate>b__0() +21
   System.Web.Mvc.Async.<>c__DisplayClass8`1.<BeginSynchronous>b__7(IAsyncResult _) +12
   System.Web.Mvc.Async.WrappedAsyncResult`1.End() +62
   System.Web.Mvc.<>c__DisplayClasse.<EndProcessRequest>b__d() +50
   System.Web.Mvc.SecurityUtil.<GetCallInAppTrustThunk>b__0(Action f) +7
   System.Web.Mvc.SecurityUtil.ProcessInApplicationTrust(Action action) +22
   System.Web.Mvc.MvcHandler.EndProcessRequest(IAsyncResult asyncResult) +60
   System.Web.Mvc.MvcHandler.System.Web.IHttpAsyncHandler.EndProcessRequest(IAsyncResult result) +9
   System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +8969201
   System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +184
02.03.2012 - 10:53 Uhr

Hallo,

ich habe folgendes Designproblem:

Ich habe eine Datenschicht, darauf aufgesetzt wird eine Model-Schicht.
Ein Model ist einfach eine Bündelung von fachlich sinnvoll zusammengesetzten Daten.

Für jedes Model gibt es eine Bearbeitungsmöglichkeit, eine Oberfläche (Edit-UI).
Mein Problem ist das ich mehrere Models an einer Stelle zur Auswahl anbiete und damit dem Benutzer ermögliche diese zu bearbeiten. Je nach Auswahl benötige ich dafür eventuell eine jeweils andere Edit-UI.

Das habe ich derzeit so realisiert, dass der Entwickler zu der Basisklasse aller Edit-UI's eine statische Methode CreateEditUI(Model) aufrufen kann, welche ihm die jeweils korrekte UI wiedergibt. In der CreateEditUI vergleiche ich jeweils auf den Type des Models und erstelle eine konkrete Edit-UI.

Was mir an dieser Lösung nicht gefällt ist, dass diese nicht objektorientiert ist. Denn ich hole mir die Edit-UI's über ein Mapping anstatt über ein Objektmodell.
Ich kann aber auch nicht in die Models die dafür notwendige UI als referenz speichern, da ich dadurch auf die Schichtentrennung verletzten würde.

Fällt euch für diese Problematik eine gute Lösung ein?

13.02.2012 - 16:44 Uhr

Hallo,

kennt ihr eine Bibliothek oder eine Möglichkeit in .Net das man anhand eines Formates (z.B. "0%") einen Text ( z.B. "10%") in ein Double (0,1) umwandeln?

24.08.2011 - 11:37 Uhr

Ich habe die Lösung gefunden!

Nachdem eine DB-Verbindung zu einem Oracle Server v. 11.2.0.1 aufgebaut ist, ist Visio 2003 nicht lauffähig. Ich habe auf einen Virtuellen Rechner diesen Fall nachgestellt. Konnte Visio aus dem Programm nicht starten mit gegebener Meldung. Verbinde ich mich mit einem SQL Server, geht es ohne Probleme.

Eine Lösung ist das Instanziieren von Visio bevor die Oracle Verbindung aufgebaut wird. Dann funktioniert es auch nachfolgend. Sehr kurioser Fehler.
Hoffe ich kann damit auch anderen helfen die das Problem haben...

@Grumbler85 und @herbivore vielen dank für eure Hilfe.

23.08.2011 - 10:54 Uhr

Hm habe immer noch diesen Fehler. Konnte jedoch kleinere Fortschritte machen.
Es geht darum das der Kunde kein Visio in meiner Anwendung aufrufen kann.

er erhält folgende Meldung:> Fehlermeldung:

Eine externe Komponente hat eine Ausnahme ausgelöst.

bei System.Windows.Forms.UnsafeNativeMethods.CoCreateInstance(Guid& clsid, Object punkOuter, Int32 context, Guid& iid)
bei System.Windows.Forms.AxHost.CreateWithoutLicense(Guid clsid)
bei System.Windows.Forms.AxHost.CreateWithLicense(String license, Guid clsid)
bei System.Windows.Forms.AxHost.CreateInstanceCore(Guid clsid)
bei System.Windows.Forms.AxHost.CreateInstance()
bei System.Windows.Forms.AxHost.GetOcxCreate()
bei System.Windows.Forms.AxHost.TransitionUpTo(Int32 state)
bei System.Windows.Forms.AxHost.CreateHandle()
bei System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible)
bei System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible)
bei System.Windows.Forms.AxHost.EndInit()
bei MV2007.Gui.Themen.Architektur.VisioPlan.InitializeComponent()
bei MV2007.Gui.Themen.Architektur.VisioPlan.Initialize()
bei MV2007.Gui.Themen.Architektur.Bebauungsplan.ucBebauungsplan.Initialize()
bei MV2007.Gui.Themen.Architektur.Bebauungsplan.ucBebauungsplanNavigator..ctor(op_Bebauungsplan pOption, ReportModel pModel, NN_NAVNODERow pNavigator)
bei MV2007.Gui.Themen.Architektur.Bebauungsplan.panBebauungsplanNavigator.CreatePlan()
bei MV2007.Gui.Themen.Architektur.Bebauungsplan.panBebauungsplan.initFirstActivate()
bei MV2007.Gui.Themen.Architektur.Bebauungsplan.panBebauungsplan.Aktivieren()
bei MV2007.Gui.Tools.FrameworkElemente.bpPanel.bpPanel_VisibleChanged(Object sender, EventArgs e)
bei System.Windows.Forms.Control.OnVisibleChanged(EventArgs e)
bei System.Windows.Forms.ScrollableControl.OnVisibleChanged(EventArgs e)
bei System.Windows.Forms.Control.SetVisibleCore(Boolean value)
bei System.Windows.Forms.Control.set_Visible(Boolean value)
bei MV2007.Gui.Element.bpView.mList_SelectedIndexChanged(Object sender, EventArgs e)
bei System.Windows.Forms.ListBox.OnSelectedIndexChanged(EventArgs e)
bei System.Windows.Forms.ListBox.WmReflectCommand(Message& m)
bei System.Windows.Forms.ListBox.WndProc(Message& m)
bei System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
bei System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
bei System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

Folgendes ist bisher bekannt:

  • Ich habe ein kleines Test-Programm geschrieben welches einfach nur Visio einbettet. Dieses funktioniert.

  • Die Anbindung an das Visio funktioniert bei allen anderen Kunden

  • Wenn Visio gestartet wird -> dann über Visiodokument öffnen die Anwendung gestartet wird, dann läuft das eingebettete Visio ohne Probleme!?

  • Es geht um einen Windows Server 2003 SP 2 und Visio 2003 SP 3

  • Das Probramm verbindet sich auf einen Oracle Server mit der Treiberversion 11.2.0.1

Kann mir jemand weiterhelfen?

19.07.2011 - 17:29 Uhr

verwendetes Datenbanksystem: MSSQL, Oracle, DB2

Hallo,

ich habe derzeit eine Kosten-Leistungsverrechnung in .Net mit DataSets realisiert.
Es geht darum Kosten von einem Konto auf andere Konten zu verteilen.
Ich habe dazu folgende vereinfachte DB-Struktur (Im Anhang zu sehen).

Also Konten die Kostensätze halten. Die Kostensätze haben variable Attribute die der Kunde für sich anlegt. Ein Kostensatz kann 0-x Attribute haben.

Die Verrechnung definiert welches Konto auf welches andere Konto zu welchem Prozentsatz verrechnet werden soll. Dazu werden die Kostensätze und deren Attribute von einem Konto in ein anderes kopiert und der jeweilige Kostenwert dem Prozentsatz angepasst.

Mein Problem ist Performence. Ich lese die Daten per Adapter ein und füge einem DataSet die entsprechenden neuen Einträge hinzu um so die Verrechnung durchzuführen. Anschießend kommt ein Adapter Update. Der Vorgang dauert leider bei ein paar haundert-tausend Einträgen mehrere Stunden. Das möchte ich nun optimieren und wollte mal fragen welche Ansätze ihr da seht. Das ganze soll auf MSSQL, Oracle und DB2 Basis funktionieren.

Ich dachte jetzt zunächst das ich die tatsächliche Verrechnung ausschließlich auf SQL Statement Basis realisiere indem ich vielleicht mit "Insert into Select" arbeite.
So kann ich zwar Einträge kopieren, ich weiss dann jedoch nicht wie ich den Primärschlüssel hochsetzen kann. Bisher mein SQL:

Beispiel für SQL Statement und die Verrechnung für das Konto 2:
Insert into Kostensatz Select ID, Datum, Wert, 2 as Konto from Kostensatz Where Konto = 1

Das geht leider nicht weil ich die ID nicht hochsetze und ein "Select max(ID) from Kostensatz" geht an der Stelle des Selects ja nicht, sodass es so ähnlich aussehen würde:
Insert into Kostensatz Select (Select max(ID) from Kostensatz) as ID, Datum, Wert, 2 as Konto from Kostensatz Where Konto = 1

Habt ihr eine Idee dazu oder einen ganz anderen Anatz?

21.06.2011 - 16:04 Uhr

Also es findet keine Interaktion statt, sprich das Excel wird auch nicht geklickt.
Ich verwende einen Startbildschirm. Ist ein Rahmenloser Dialog, dieser startet bevor die Anwendung sichtbar wird. Das merkwürdige ist das es sich so oft unterscheidlich verhält.

21.06.2011 - 11:35 Uhr

Hallo,

Ich habe manchmal das Problem das die eigene Anwendung nach Programmstart hinter allen aktiven Fenstern verschwindet. Der Kunde startet das Programm, hat dabei Excel auf. Er sieht den Startbildschirm, dann verschwindet der Startbildschirm und er merkt anhand der Startleiste von Windows das ein Tab dazu gekommen ist. Er minimiert also Excel und sieht unsere Anwendung.

Dieses Verhalten lässt sich auch bei mir lokal selten beobachten, jedoch nicht reproduzierbar. Weiss jemand woran sowas liegen kann?

13.04.2011 - 11:18 Uhr

Hallo, ich habe jetzt alle Threaderstellungen unterdrück.
Sprich ich bin die Schlüsselwörter "new Thread", ".Tick", ".DoWork" durchgegangen und habe alle Timer, Threadinstanziierungen und Backgroundworker unterdrückt indem ich vorher ein return eingefügt habe.
Jedoch gelange ich immernoch zum gleichen Fehler.

Meinst du andere Threads? Ich benutze prinzipiell auch Word, Excel, Adobe PDF, kann es an diesen Programmen liegen?

12.04.2011 - 14:44 Uhr

Hallo ich bekomme reproduzierbar folgende Fehlermeldung:

Fehlermeldung:
Invoke oder BeginInvoke kann für ein Steuerelement erst aufgerufen werden, wenn das Fensterhandle erstellt wurde.
bei System.Windows.Forms.Control.MarshaledInvoke(Control caller, Delegate method, Object[] args, Boolean synchronous)
bei System.Windows.Forms.Control.BeginInvoke(Delegate method, Object[] args)
bei System.Windows.Forms.WindowsFormsSynchronizationContext.Post(SendOrPostCallback d, Object state)
bei System.Windows.Forms.AxHost.OleInterfaces.Finalize()

das beschäftigt mich schon längere Zeit, jedoch kriege ich das Problem einfach nicht gelöst. Ich starte mein Programm in Visual Studio, schließe ich es dann bekomme ich oben genannten Fehler. Weiss jedoch nicht wo sich das Programm gerade befindet. In den Threads sehe ich nur noch den GC-Thread der gerade aktiv ist.

Weis jemand wie ich diesen Fehler beheben kann. Oder was mögliche Ansatzpunkte wären. Die Anwendung ist nicht gerade klein und ich bräuchte einen Anhaltspunkt zum suchen.
Oder lässt sich dieser Fehler auch irgendwie unterdrücken? Das würde mir reichen.
Denn es entsteht kein Fehlverhalten. Alles wird beim Schließen korrekt durchgeführt, nur den Kunden stört es immer das am Ende ein "Das Programm funktioniert nicht mehr" Fenster kommt. Kann mir jemand helfen?

08.11.2010 - 10:55 Uhr

Hallo ich habe ein UserControl, welches im Konstruktor auf eine Externe DLL zugreift.
Das verursacht in der Vorschau einen Fehler und ich kann die Komponente nicht bearbeiten...
Gibt es eine Möglichkeit gewisse Methoden für den Designer auszuschließen, damit ich auch die Oberflächen editieren kann?

03.11.2010 - 12:57 Uhr

in meinem Projekt male ich eine art Tabelle und ich male auch einen nicht transparenten Hintergrund. Ohne den Clear Befehl wird die Grafik nicht korrekt mit dem Clear Befehl sieht alles super aus. Ich kann mir zwar keinen Reim darauf machen, aber freu mich das es damit erledigt ist.

03.11.2010 - 11:58 Uhr

Das g.Clear(Color.White) macht tatsächlich den Unterschied! Damit ist mein Problem behoben. Vielen Dank gfoidl, ich hab da schon so lange dran gesessen und endlich wurde die Lösung gefunden !!!

03.11.2010 - 09:28 Uhr

@gfoidl: Ich habe mal Arial genommen, komme jedoch auf gleiche Ergebnisse...
@MarsStein: Ich habe nichts skaliert, die Ausdrucksgrafik sieht nur so groß aus weil ich die aus einem gezoomten PDF Dokumenten kopiert hab.
@F.Z. Mit einem anderen TextRenderingHint lassen sich zwar bessere Ergebnisse erzielen, jedoch ist der Ausdruck niemals perfekt...
@Floste: Ich verwende die Defaultwerte, ich habe es auch mit anderen Eigenschaften probiert, komme aber auf keinen grünen Zweig.

Es muss doch generell möglich sein scharfe Bilder mit .Net zu erzeugen oder ?

02.11.2010 - 18:40 Uhr

Hallo,
ich habe folgenden vereinfachten Codeausschnitt:


                    Bitmap i = new Bitmap(80, 30);
                    Graphics g = Graphics.FromImage(i);
                    g.DrawString(" Das ist ein Test 123.456", SystemFonts.DefaultFont, Brushes.Black, new Rectangle(0, 0, 100, 100));
                    i.Save(@"C:\temp\bla.png", ImageFormat.Png);

Wenn ich das gespeicherte Bild nun in Word oder einem anderen Programm einfüge und drucke, dann sieht das Bild sehr schrecklich aus. Auch wenn ich die Graphics Zeichenoperationen umstelle wie SmoothingMode oder TextRenderingHint. (Habe alle 1152 Kombinationsmöglichkeiten ausgedruckt und kein Erfolg gehabt). Manche Möglichkeiten sehen manchmal ganz gut aus, jedoch sind dann wieder ein paar Pixel zuviel drin...
Zum leichteren Verständnis habe ich hier zwei Beispielgrafiken:

Weis jemand was das Problem sein könnte?

11.10.2010 - 11:42 Uhr

Hab in einem anderem Forum diesen Ausschnitt gefunden:


 private void button1_Click(object sender, EventArgs e)  
        {  
            Console.WriteLine(GetGuiResources(GetCurrentProcess(), GR_USEROBJECTS));  
        }  
 
        [System.Runtime.InteropServices.DllImportAttribute("user32.dll", SetLastError=true)]  
        private static extern uint GetGuiResources(System.IntPtr hProcess, uint uiFlags);  
 
        [System.Runtime.InteropServices.DllImportAttribute("kernel32.dll", EntryPoint = "GetCurrentProcess")]  
        private static extern System.IntPtr GetCurrentProcess();  
 
        private const int GR_GDIOBJECTS = 0;  
        private const int GR_USEROBJECTS = 1; 

Der hat geholfen!

10.10.2010 - 22:48 Uhr

Ich weiss zwar nicht was du mir damit sagen möchtest, aber was ist denn Interlocked.Increment? hat das einen bestimmten Vorteil?

Meine Frage bezieht sich auf die im Task Manager befindliche Größe "BENUTZER-Objekte" die ich herauslesen möchte...

Ich kann ja nicht jede Klasse auch nicht die aus .Net mit einem Increment/Decrement versehen, da es sowas anscheinend schon im System gibt...

04.10.2010 - 17:18 Uhr

Hallo gibt es in .Net die Möglichkeit die Anzahl der erstellten Benutzer-Objekte der eigenen Anwendung auszulesen, ohne dabei Administrator-Rechte anzufordern?

18.08.2010 - 10:47 Uhr

"Oder versuchst du Datensätze aus verschiedenen DBs in ein DataSet zu befüllen?"

Ich habe technisch nur ein DataSet was ich pflege. Und je nachdem was konfiguriert wird, werden da Inhalte aus einer MSSQL, Oracle oder DB2 reingeladen.
Und mit DB2 habe ich ein Problem bezüglich der DataSet Spalten die bool sind, da die Tabellenspalten auf der DB2 als SmallInt definiert wurden.

Das gleiche Konstrukt habe ich eigentlich auch bei Oracle. In Oracle ist es auch NUMBER(1,0) auf der DB und der Adapter kriegt das casten richtig hin...

Hat jemand mal so ein Problem gehabt?

17.08.2010 - 11:33 Uhr

DB2

Hallo ich habe ein einheitliches DataSet, welches ich für Oracle und MSSQL verwende.
In diesem DataSet habe ich in manchen Tabellen ein bool Feld definiert.
Wenn ich jetzt eine solche Tabelle mit einem DB2DataAdapter füllen (Fill) möchte komme ich auf eine InvaliteCast Exception. Da ich versuche SmallInt in bool umzuwandeln.

Kennt jemand einen Ansatz wie ich ein DB2 Feld so konfigurieren kann das ein DataAdapter ein DataSet mit bool Feld befüllen kann?

Welchen Typ muss ich dafür in der DB und im Adapter definieren?
arbeite mit dem DB2DataAdapter.

Derzeit verwende ich es so:
system.bool wird gleichgesetzt mit DB2Type.SmallInt.

Jemand eine Idee?

29.05.2010 - 10:21 Uhr

Hallo,
Ich programmiere etwa zwei Jahre an einem Projekt mit und umso größer das Projekt wird umso langsamer wird auch VS08. Solche Aktionen wie die Projekteigenschaften aufrufen (bis 5 min), eine GUI im Ansichtendesigner öffnen (initial 5 wegen der toolbox, später etwa 1 min), ein im Designer vorkommendes Element selektieren (30-40 sek), Suchen/Ersetzen/Umbenennen (30sek-3min), Daten vom TFS aufrufen oder in Datei-Laschen wechseln (10 sek) dauern entsprechend.

Es nervt einfach tierisch sehr häufige mittel-lange Wartezeiten in seinem Arbeitsprozess zu haben.

Wisst ihr wie man dem Vorbeugen kann? Ist das VS nicht für große Projekte ausgelegt? Ich habe in dem Projekt ein paar Unterprojekte, soll ich diese auskoppeln? Das würde den Arbeitsprozess aber auch verschlechtern.

Geht es euch genauso?

Mein Rechner hat 4GB Arbeitsspeicher. Ist ein Latitude D830 (Laptop). An dem Vorgänger mit 2 GB kann man praktisch nicht arbeiten...

25.05.2010 - 17:12 Uhr

Hallo, wenn ich mein Programm schließe erhalte ich im Visual Studio folgende Meldung:

System.InvalidOperationException wurde nicht behandelt.
Message="Invoke oder BeginInvoke kann für ein Steuerelement erst aufgerufen werden, wenn das Fensterhandle erstellt wurde."
Source="System.Windows.Forms"
StackTrace:
bei System.Windows.Forms.Control.MarshaledInvoke(Control caller, Delegate method, Object[] args, Boolean synchronous)
bei System.Windows.Forms.Control.BeginInvoke(Delegate method, Object[] args)
bei System.Windows.Forms.WindowsFormsSynchronizationContext.Post(SendOrPostCallback d, Object state)
bei System.Windows.Forms.AxHost.ConnectionPointCookie.Finalize()
InnerException:

Ich sehe jedoch nicht wo dieser Fehler auftritt, ich befinde mich noch in dem aktiv geöffneten Tab und weiss auch nicht wieso der Fehler auftritt.
Ich habe meine Form_Closing Methode schon Schritt für Schritt durchlaufen - ohne Fehler.
Ich habe im gesamten Quellcode nach Invoke und BeginInvoke gesucht und einen Breakpoint gesetzt. Er springt in keiner dieser Zeilen rein.

Wenn der Kunde das Programm schließt steht eine Windows Meldung "Das Programm funktioniert nicht mehr".

Weiss jemand wie ich den Fehler eingrenzen kann?

20.05.2010 - 11:26 Uhr

Aber den Programmierer, es ist ja ein Frameworkelement. Ich müsste dann ja mit einer Property auf die ComboBox verweisen oder alles im Usercontrol duplizieren.
Das erste ist nicht intuitiv, das zweite aufwändig.

20.05.2010 - 10:16 Uhr

Dann verliert aber das Usercontrol die Handhabung einer ComboBox. Nur wegen einem Button ist das ja doof. Es ist ja primär immernoch eine Combobox...

19.05.2010 - 18:07 Uhr

Mit expander knopf meine ich den aufklappbutton bei einer Combobox.
Das Ergebnis sollte so aussehen wie im Anhang...

19.05.2010 - 16:12 Uhr

Hallo,
ich verwende in meinem Projekt häufiger eine abgeleitete ComboBox mit Multiselect-Funktionalität.
In manchen ComboBoxen gibt es zuviele Daten, sodass der Kunde gerne mit einer Suchmaske die Elemente der ComboBox selektieren möchte. Im wesentlichen sind in der ComboBox nur DataRows mit Binding enthalten, sodass ich eine Standardsuchmaske verwenden kann. Da ich von ComboBox schon geerbt habe wäre es ja ein leichtes wenn ich einfach einen Button einfügen würde, der eben die Suchmaske öffnet und das Ergebnis bei sich selbst (der Combobox) aktualisiert.

Ich möchte nicht ein neues Control bauen, weil das zu viele Anpassungen bedeuten würde, manche Controls sind auf diese Combobox spezialisiert, daher möchte ich es mit Vererbung realisieren.

Jedoch fängt ganz rechts der Expander Knopf an und ich weiss auch garnicht wie ich den verschieben könnte. Bis jetzt ist mein Lösungsansatz das ich mit einer Methode AddSearchButton() Ein Panel erzeuge Diese auf den Parent meiner ComboBox einfüge und dann die ComboBox samt Button auf dieses Panel einfüge.
Scheint mir aber eine unsaubere Lösung zu sein, wisst ihr vielleicht was besseres?

02.04.2010 - 17:36 Uhr

Ok, dann hier nochmal die Exception. Das ist aber ein Fehler der generell mit dem DateTimePicker auftritt, daher dachte ich jemand hatte damit schonmal probleme...

Exception:

"Die Parameter "Year", "Month", und "Day" beschreiben eine nicht darstellbare DateTime."
bei System.DateTime.DateToTicks(Int32 year, Int32 month, Int32 day)
bei System.Windows.Forms.DateTimePicker.SysTimeToDateTime(SYSTEMTIME s)
bei System.Windows.Forms.DateTimePicker.WmDateTimeChange(Message& m)
bei System.Windows.Forms.DateTimePicker.WmReflectCommand(Message& m)
bei System.Windows.Forms.DateTimePicker.WndProc(Message& m)
bei System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
bei System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
bei System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
bei System.Windows.Forms.UnsafeNativeMethods.SendMessage(HandleRef hWnd, Int32 msg, IntPtr wParam, IntPtr lParam)
bei System.Windows.Forms.Control.SendMessage(Int32 msg, IntPtr wparam, IntPtr lparam)
bei System.Windows.Forms.Control.ReflectMessageInternal(IntPtr hWnd, Message& m)
bei System.Windows.Forms.Control.WmNotify(Message& m)
bei System.Windows.Forms.Control.WndProc(Message& m)
bei System.Windows.Forms.ScrollableControl.WndProc(Message& m)
bei System.Windows.Forms.ContainerControl.WndProc(Message& m)
bei System.Windows.Forms.Form.WndProc(Message& m)
bei System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
bei System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
bei System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
bei System.Windows.Forms.UnsafeNativeMethods.CallWindowProc(IntPtr wndProc, IntPtr hWnd, Int32 msg, IntPtr wParam, IntPtr lParam)
bei System.Windows.Forms.NativeWindow.DefWndProc(Message& m)
bei System.Windows.Forms.Control.DefWndProc(Message& m)
bei System.Windows.Forms.Control.WmKeyChar(Message& m)
bei System.Windows.Forms.Control.WndProc(Message& m)
bei System.Windows.Forms.DateTimePicker.WndProc(Message& m)
bei System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
bei System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
bei System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
bei System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg)
bei System.Windows.Forms.Application.ComponentManager. System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop (Int32 dwComponentID, Int32 reason, Int32 pvLoopData)
bei System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
bei System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
bei System.Windows.Forms.Application.Run(Form mainForm)
bei DatumsTest.Program.Main() in C:\Users\AUnruh.TRICEPT-AG\Documents\Visual Studio 2008\Projects\DatumsTest\DatumsTest\Program.cs:Zeile 18.
bei System.AppDomain._nExecuteAssembly(Assembly assembly, String[] args)
bei System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
bei Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
bei System.Threading.ThreadHelper.ThreadStart_Context(Object state)
bei System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
bei System.Threading.ThreadHelper.ThreadStart()

02.04.2010 - 16:04 Uhr

Ein AddMonth(-1) bei einem Datum würde ein 31.3. zu einem 28.2. formen.
Das passiert auch bei einem Format wo die Tage angezeigt werden.

Zu dem ValueChanged event komme ich garnicht weil er schon im WinProc den Fehler wirft.

02.04.2010 - 15:45 Uhr

Hallo ich habe ein DateTimepicker wo ich das CUstomformat "MMMM yyyy" eingetragen habe. Als Wert hat er den 31.3.2010. Wenn ich auf der Oberfläche nun den Monat auf den Februar setzte stürzt das Programm ab, da er kein gültiges Datum darstellen kann..

Der Kunde kann das Format selbst einstellen, daher frage ich mich ob es da eine allgemeine Lösung zu gibt...

02.04.2010 - 13:47 Uhr

Danke, der hinweis das es im Konstruktor zu früh ist hat mir geholfen. Habe das Problem lösen können...