开发者

null reference exception [duplicate]

This question already has answers here: What is a NullReferenceException, and how do I fix it? (27 answers) Closed 6 years ago.

i get a system null reference exception error that displays as follows.

null reference exception [duplicate]

Am performing validation on 4 "dropdownlists". what could i have done wrong?

code behind below.

  protected void addExhibitButton_Click(object sender, EventArgs e)
    {

        if (Page.IsValid)
        {
            DateTime exhibitDate = DateTime.Now;
            int caseid = Convert.ToInt32(DropDownListcaseid.SelectedItem.Text);
            string exhibittype = exhibitTypeDropDownList.Text.ToString();
            string storedloc = storedLocationDropDownList.Text.ToString();
            string offid = DropDownList1.SelectedItem.Text.ToString();
            string status = "Pending";
            Stream imgStream = exhibitImageFileUpload.PostedFile.InputStream;
            int imgLen = exhibitImageFileUpload.PostedFile.ContentLength;                
            byte[] imgBinaryData = new byte[imgLen];
            int n = imgStream.开发者_开发技巧Read(imgBinaryData,0,imgLen);
            try
            {
                SqlConnection connections = new SqlConnection(strConn);
                SqlCommand command = new SqlCommand("INSERT INTO Exhibits (CaseID, ExhibitType, ExhibitImage, DateReceived, StoredLocation, InvestigationStatus, OfficerID, SuspectID, InvestigatorID, ManagerID, AdminID ) VALUES (@CaseID, @ExhibitType, @ExhibitImage, @DateReceived, @StoredLocation, @InvestigationStatus, @OfficerID, @SuspectID, @InvestigatorID, @ManagerID, @AdminID)", connections);


                SqlParameter param0 = new SqlParameter("@CaseID", SqlDbType.Int);
                param0.Value = caseid;
                command.Parameters.Add(param0);

                SqlParameter param1 = new SqlParameter("@ExhibitType", SqlDbType.NText);
                param1.Value = exhibittype;
                command.Parameters.Add(param1);

                SqlParameter param2 = new SqlParameter("@ExhibitImage", SqlDbType.Image);
                param2.Value = imgBinaryData;
                command.Parameters.Add(param2);

                SqlParameter param3 = new SqlParameter("@DateReceived", SqlDbType.SmallDateTime);
                param3.Value = exhibitDate;
                command.Parameters.Add(param3);

                SqlParameter param4 = new SqlParameter("@StoredLocation", SqlDbType.NText);
                param4.Value = storedloc;
                command.Parameters.Add(param4);

                SqlParameter param5 = new SqlParameter("@InvestigationStatus", SqlDbType.VarChar, 50);
                param5.Value = status;
                command.Parameters.Add(param5);

                SqlParameter param6 = new SqlParameter("@OfficerID", SqlDbType.NChar, 10);
                param6.Value = offid;
                command.Parameters.Add(param6);

                SqlParameter param7 = new SqlParameter("@SuspectID", SqlDbType.NChar, 10);
                param7.Value = DBNull.Value;
                command.Parameters.Add(param7);

                SqlParameter param8 = new SqlParameter("@InvestigatorID", SqlDbType.NChar, 10);
                param8.Value = DBNull.Value;
                command.Parameters.Add(param8);

                SqlParameter param9 = new SqlParameter("@ManagerID", SqlDbType.NChar, 10);
                param9.Value = DBNull.Value;
                command.Parameters.Add(param9);

                SqlParameter param10 = new SqlParameter("@AdminID", SqlDbType.NChar, 10);
                param10.Value = adminID;
                command.Parameters.Add(param10);

                connections.Open();
                int numRowsAffected = command.ExecuteNonQuery();
                connections.Close();

                if (numRowsAffected != 0)
                {

                    DropDownListcaseid.ClearSelection();
                    exhibitTypeDropDownList.Text = null;
                    storedLocationDropDownList.Text = null;
                    DropDownList1.ClearSelection();
                    messageLabel.Text = "Rows Inserted successfully";
                    messageLabel.Visible = true;
                }
                else
                {
                    messageLabel.Text = "An error occured while inserting columns.";
                    messageLabel.Visible = true;

                }
            }
            catch (Exception ex)
            {
                string script = "<script>alert('" + ex.Message + "');</script>";
            }

        }

    }

Image of page being run below

null reference exception [duplicate]

I applied validation items to all drop down lists except the one with the browse button(which offcourse is not a dropdown item). clearly according to my knowledge i havent left out any field.so what could be the cause?


It seems that in at least one dropdownlist you have not selected anything, causing the SelectedItem property to return null. Change your code to check if the property is null before trying to access it's Text property.


Debug Your code and You will see which object or property is null. The simplest way to check if dropdownlist has selected item is to check SelectedIndex property, which should be > -1

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜