none
Fehler: Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt. RRS feed

  • Frage

  • Serverfehler in der Anwendung /.



               

    Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt.





                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.NullReferenceException: Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt.



                Quellfehler:

                         
    Zeile 58: 
    Zeile 59:         //Fill Textboxes
    Zeile 60:         txtDescription.Text = product.Description;
    Zeile 61:         txtName.Text = product.Name;
    Zeile 62:         txtPrice.Text = product.Price.ToString();


               


                Quelldatei: c:\Users\Nexx-SSD\Documents\Visual Studio 2013\WebSites\GarageManager\Pages\Management\ManageProducts.aspx.cs    Zeile: 60
               



                Stapelüberwachung:

                         
    [NullReferenceException: Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt.]
       Pages_Management_ManageProducts.FillPage(Int32 id) in c:\Users\Nexx-SSD\Documents\Visual Studio 2013\WebSites\GarageManager\Pages\Management\ManageProducts.aspx.cs:60
       Pages_Management_ManageProducts.Page_Load(Object sender, EventArgs e) in c:\Users\Nexx-SSD\Documents\Visual Studio 2013\WebSites\GarageManager\Pages\Management\ManageProducts.aspx.cs:23
       System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) +51
       System.Web.UI.Control.OnLoad(EventArgs e) +95
       System.Web.UI.Control.LoadRecursive() +59
       System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +678
    

    QUELL CODE:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Collections; //Namespace that Includes ArrayList
    
    public partial class Pages_Management_ManageProducts: System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if(!IsPostBack)
            {
                GetImages();
                //Check if product is being updated
                if(!String.IsNullOrWhiteSpace(Request.QueryString["id"]))
                {
                    intid = Convert.ToInt32(Request.QueryString["id"]);
                    FillPage(id);
                }
            }
        }
    
        protected void btnSubmit_Click(object sender, EventArgs e)
        {
        ProductModel productModel = newProductModel();
        Product product = CreateProduct();
    
            //Check if the URL contain an ID Parameter
            if(!String.IsNullOrWhiteSpace(Request.QueryString["id"]))
            {
                //ID exist -> Update existing row
                intid = Convert.ToInt32(Request.QueryString["id"]);
                lblResult.Text = productModel.UpdateProduct(id, product);
            }
            else
            {
                //ID does not exist -> Create a new row
                lblResult.Text = productModel.InsertProduct(product);
            }
        }
    
        public void FillPage(intid)
        {
    
        //Get selected product from DB
        ProductModel productModel = newProductModel();
        Product product = productModel.GetProduct(id);
    
            //Fill Textboxes
            txtDescription.Text = product.Description;
            txtName.Text = product.Name;
            txtPrice.Text = product.Price.ToString();
    
            //Set Dropdownlist values
            ddlImage.SelectedValue = product.Image;
            ddlType.SelectedValue = product.TypeId.ToString();
        }
    
        private void GetImages()
        {
            try
            {
                //Get all Filepaths
                string[] images = System.IO.Directory.GetFiles(Server.MapPath("~/Images/Products/"));
                //Get all Filenames and add them to an arraylist
                ArrayListimageList = newArrayList();
    
                foreach(string image in images)
                {
                    string imageName = image.Substring(image.LastIndexOf(@"\", StringComparison.Ordinal) + 1);
                    imageList.Add(imageName);
                }
    
                //Set the ArrayList as the Dropdownview´s datasoure and refresh
                ddlImage.DataSource = imageList;
                ddlImage.AppendDataBoundItems = true;
                ddlImage.DataBind();
            }
            catch(Exceptione)
            {
                lblResult.Text = e.ToString();
            }
        }
    
        private Product CreateProduct()
        {
            Product product = newProduct();
            product.Name = txtName.Text;
            product.Price = int.Parse(txtPrice.Text);
            product.TypeId = Convert.ToInt32(ddlType.SelectedValue);
            product.Description = txtDescription.Text;
            product.Image = ddlImage.SelectedValue;
    
            return product;
        }
    }
    


    Dienstag, 14. März 2017 18:28

Antworten

  • Hi, wie Stefan Falz schon schrieb, eine Instanz existiert nicht. 

    Prüf doch mal deine Schreibweise von txtDescription, eventuell ein Schreibfehler?

    Ansonsten setz einen Haltepunkt in der entsprechenden Zeile (60) und schau nach nach welches Object null ist.

    Woher kommt die "id" in folgender Zeile:

    Product product = productModel.GetProduct(id);

    ??

    Du übergibst lediglich "intid":

    public void FillPage(intid)

    Da soll wahrscheinlich:

    public void FillPage(int id)
    ...sein.

    Also ein Parameter "id" vom Typ "int".

    Gruß



    Freiberufler im Bereich Softwareentwicklung Von der PLC und Robotik zu VB.NET & C#, vorrangig WPF und UWP

    Sonntag, 9. April 2017 09:21

Alle Antworten

  • Die im Code angegebene Instanz existiert nicht. Also entweder txtDescription oder product.


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community

    Dienstag, 14. März 2017 19:01
    Moderator
  • Danke vielmals für die Hilfe leider komme ich nicht drauf wie der Code dann aussehen muss. Habe bereits diverseste Möglichkeiten aber jedoch ohne Erfolg.

    Können sie mir vielleicht näheres dazu sagen oder mir sage was ich im Code noch angeben muss.

    Bin leider ein Anfängling was VSB betrifft und benötige eine dringende Lösung ist für ein Schulprojekt.

    Danke

    NebiAdi

    Samstag, 8. April 2017 22:51
  • Hi, wie Stefan Falz schon schrieb, eine Instanz existiert nicht. 

    Prüf doch mal deine Schreibweise von txtDescription, eventuell ein Schreibfehler?

    Ansonsten setz einen Haltepunkt in der entsprechenden Zeile (60) und schau nach nach welches Object null ist.

    Woher kommt die "id" in folgender Zeile:

    Product product = productModel.GetProduct(id);

    ??

    Du übergibst lediglich "intid":

    public void FillPage(intid)

    Da soll wahrscheinlich:

    public void FillPage(int id)
    ...sein.

    Also ein Parameter "id" vom Typ "int".

    Gruß



    Freiberufler im Bereich Softwareentwicklung Von der PLC und Robotik zu VB.NET & C#, vorrangig WPF und UWP

    Sonntag, 9. April 2017 09:21
  • Hallo,

    folgendes ich würde gerne mal meine Datenbank schicken wollen, welche man sich dann eventuell genauer anschauen kann. Weil die Erklärung ist leider etwas schwer.

    Wenn mir jemand eine Email schicken würde kann ich die DB mal schicken.

    Danke

    Sonntag, 9. April 2017 20:20
  • Du kannst deine Datenbank in OneDrive hochladen und dann hier den Link freigeben, so erreichst du mehr User, denn Mail-Adressen gibt man nicht gerne Preis..

    Allerdings solltest du schon ein wenig beschreiben, was du möchtest. Ist es noch das gleiche Problem oder etwas neues? 


    Freiberufler im Bereich Softwareentwicklung Von der PLC und Robotik zu VB.NET & C#, vorrangig WPF und UWP

    Montag, 10. April 2017 06:43