Ссылка на объект не установлена на экземпляр объекта. Исключение, попытка сделать строку только для чтения после вставки
я получаю это исключение :
**
Ссылка на объект не установлена на экземпляр объекта.
**
у меня есть datagridview, который я использую , я смог просмотреть данные из представления datagrid в новую c# winform, теперь у меня есть что-то, что бросает мне вызов.
новая winform получает информацию из представления datagrid, я установил модификаторы в public, так что она работает нормально, теперь она собирает информацию и сохраняет ее в базе данных. Теперь возникла проблема, когда я хотел сделать его только для чтения, чтобы после того, как информация была сохранена, она не могла быть удалена или даже изменена.
ПС Вот чего я хочу добиться, если информация была введена в базу данных, то она должна сохраниться внутри базы данных из новой созданной всплывающей формы. Затем строка, из которой я выбрал информацию из формы ApproveAppointment, должна быть прочитана только для чтения и не может быть выбрана снова
Мой код выглядит так
private void button2_Click(object sender, EventArgs e) { DialogResult result = MessageBox.Show("You are about to Approve an Appointment. If approved, the information will be saved to the Visitor Appointment Database " + Environment.NewLine + " Are You sure You want to Approve ?", "New Message!",MessageBoxButtons.YesNo, MessageBoxIcon.Question); if (result == DialogResult.Yes) { try { string constring = ConfigurationManager.ConnectionStrings["MySQLDatabaseConnection"].ConnectionString; using (MySqlConnection con = new MySqlConnection(constring)) { con.Open(); string sql = "insert into vms_db.final_appointments (visit_date, visitor_name, visit_address,visit_city,signin_time,vehicle_number,organization,visit_type,reason,id_type,person_visit,img) values (@visit_date, @visitor_name, @visit_address,@visit_city,@signin_time,@vehicle_number,@organization,@visit_type,@reason,@id_type,@person_visit,@img)"; using (MySqlCommand cmd = new MySqlCommand(sql, con)) { MemoryStream ms = new MemoryStream(); pictureBox.Image.Save(ms, pictureBox.Image.RawFormat); byte[] img = ms.ToArray(); cmd.Parameters.AddWithValue("@visit_date", visit_date.Text); cmd.Parameters.AddWithValue("@visitor_name", visitor_name.Text); cmd.Parameters.AddWithValue("@visit_address", address.Text); cmd.Parameters.AddWithValue("@visit_city", city.Text); cmd.Parameters.AddWithValue("@signin_time", sign_intime.Text); cmd.Parameters.AddWithValue("@vehicle_number", vehicle_number.Text); cmd.Parameters.AddWithValue("@organization", organization.Text); cmd.Parameters.AddWithValue("@visit_type", visit_type.Text); cmd.Parameters.AddWithValue("@reason", reason.Text); cmd.Parameters.AddWithValue("@id_type", id_type.Text); cmd.Parameters.AddWithValue("@person_visit", person_visit.Text); cmd.Parameters.AddWithValue("@img", img); cmd.ExecuteNonQuery(); MessageBox.Show("Final Appointment Created " + Environment.NewLine + "You may now close this Window", "New Message", MessageBoxButtons.OK, MessageBoxIcon.Information); // Close(); ApproveAppointMents app = new ApproveAppointMents(); app.dataGridView1.CurrentRow.ReadOnly = false; } } } catch (Exception ex) { MessageBox.Show(ex.ToString()); } } else { MessageBox.Show("No Information found." + Environment.NewLine + "Please Check and Try again", "Message!", MessageBoxButtons.OK, MessageBoxIcon.Information); } }
Что я уже пробовал:
я использовал
app.dataGridView1.CurrentRow.ReadOnlyи это вызвало исключение:
Triggers Object Reference not set to instance of an object
F-ES Sitecore
Либо "приложения" равно null, "приложение.dataGridView1" имеет значение null, или "приложение.dataGridView1.CurrentRow" имеет значение null. Используйте отладчик, чтобы выяснить, что именно, и идите оттуда.