Note that there are some explanatory texts on larger screens.

plurals
  1. POObject reference not set to an instance of an object while Adding Parameter
    primarykey
    data
    text
    <p>I want to update some information when a <code>save</code> button is clicked.</p> <p>I got an error </p> <blockquote> <p>On : command.Parameters.Add("@doctorID", SqlDbType.Int).Value = resident.Doctor.DoctorID; Saying: Object reference not set to an instance of an object.</p> </blockquote> <p>Im guessing I need to create some kind of object?</p> <p><strong>Button code:</strong> </p> <pre><code> private void btnSave_Click(object sender, RoutedEventArgs e) { Resident hello = new Resident(); hello.Doctor = new Doctor(); Resident residentID; txtAdditionalInformation.Text = hello.addtionalInformation; txtForename.Text = hello.FirstName; txtSurname.Text = hello.Surname; txtTitle.Text = hello.Title; ResidentData.Update(hello); } </code></pre> <p><strong>update code (ResidentData Class):</strong> </p> <pre><code> public static void Update(Resident resident, SqlConnection connection, SqlTransaction transaction) { StringBuilder sqlString = new StringBuilder(); SqlCommand command; sqlString.Append("UPDATE [Resident] SET "); sqlString.Append("title = @title, "); sqlString.Append("firstName = @firstName, "); sqlString.Append("surname = @surname, "); sqlString.Append("dateOfBirth = @dateOfBirth, "); sqlString.Append("photo = @photo, "); sqlString.Append("doctorID = @doctorID, "); sqlString.Append("roomID = @roomID, "); sqlString.Append("allergies = @allergies, "); sqlString.Append("additionalInformation = @additionalInformation "); sqlString.Append("WHERE residentID = @residentID "); command = new SqlCommand(sqlString.ToString(), connection); if ((transaction != null)) command.Transaction = transaction; command.Parameters.Add("@residentID", SqlDbType.Int).Value = resident.ResidentID; command.Parameters.Add("@title", SqlDbType.VarChar, 50).Value = Helper.GetValue(resident.Title); command.Parameters.Add("@firstName", SqlDbType.VarChar, 100).Value = Helper.GetValue(resident.FirstName); command.Parameters.Add("@surname", SqlDbType.VarChar, 100).Value = Helper.GetValue(resident.Surname); command.Parameters.Add("@dateOfBirth", SqlDbType.DateTime).Value = Helper.GetValue(resident.DateOfBirth); command.Parameters.Add("@photo", SqlDbType.Image, 2147483647).Value = Helper.GetValue(resident.Photo); command.Parameters.Add("@doctorID", SqlDbType.Int).Value = resident.Doctor.DoctorID; command.Parameters.Add("@roomID", SqlDbType.Int).Value = resident.Room.RoomID; command.Parameters.Add("@allergies", SqlDbType.NText).Value = resident.Allergies; command.Parameters.Add("@additionalInformation", SqlDbType.NText).Value = resident.addtionalInformation; int rowsAffected = command.ExecuteNonQuery(); if (!(rowsAffected == 1)) { throw new Exception("An error has occurred while updating Resident details."); } } </code></pre> <p>*<em>Residence Class:</em></p> <pre><code> { public class Resident { private int residentID; private string title; private string firstName; private string surname; private string searchText; private System.DateTime dateOfBirth; private byte[] photo; private Room room; private Doctor doctor; private string nhs; private string residentBarcode; private string allergies; private string additionalInformation; public Resident() : base() { } public Resident(int newResidentID, string newTitle, string newFirstName, string newSurname, string newSearchText, System.DateTime newDateOfBirth, byte[] newPhoto, Room newRoom, Doctor newDoctor, string newNhs, string newResidentBarcode, string newAllergies, string newAdditionalInformation) : base() { residentID = newResidentID; title = newTitle; firstName = newFirstName; surname = newSurname; searchText = newSearchText; dateOfBirth = newDateOfBirth; photo = newPhoto; room= newRoom; doctor = newDoctor; nhs = newNhs; residentBarcode = newResidentBarcode; allergies = newAllergies; additionalInformation = newAdditionalInformation; } public int ResidentID { get { return residentID; } set { residentID = value; } } public string Title { get { return title; } set { title = value; } } public string FirstName { get { return firstName; } set { firstName = value; } } public string Surname { get { return surname; } set { surname = value; } } public string SearchText { get { return searchText; } set { searchText = value; } } public System.DateTime DateOfBirth { get { return dateOfBirth; } set { dateOfBirth = value; } } public byte[] Photo { get { return photo; } set { photo = value; } } public Room Room { get { return room; } set { room = value; } } public Doctor Doctor { get { return doctor; } set { doctor = value; } } public string NHS { get { return nhs; } set { nhs = value; } } public string ResidentBarcode { get { return residentBarcode; } set { residentBarcode = value; } } public string Allergies { get { return allergies; } set { allergies = value; } } public string addtionalInformation{ get { return additionalInformation; } set { additionalInformation = value; } } } </code></pre> <p>}</p>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload