Как исправить исключение nullexception
Привет,
Со вчерашнего дня я имею дело с проблемой NullException. где я пытаюсь добавить значения в свою базу данных в соответствии с моим запросом, но я продолжаю получать эту ошибку:
"The object reference was not defined as an instance of an object"
Что я уже пробовал:
If CheckBox1.Checked = True Then Try con.ConnectionString = "The connection is good! I've used it on select statements and it works fine!" Catch ex As Exception End Try Dim da As New MySqlDataAdapter() Dim dt As New DataTable() dt.Clear() Dim cmd As New MySqlCommand("INSERT INTO D8_ALERTAQUALIDADE(CLIENTE, PROJETO, REFERENCIA, DESCRICAO, DATA_ENTRADA, DURACAO, DATA_SAIDA, FOTO1_OK, FOTO2_OK, FOTO3_OK, FOTO4_OK, FOTO1_NOK, FOTO2_NOK, FOTO3_NOK, FOTO4_NOK) VALUES(@D1,@D2,@D3,@D4,@D5,@D6,@D7,@D8,@D9,@D10,@D11,@D12,@D13,@D14,@D15)", con) cmd.Parameters.AddWithValue("@d1", cmbCliente.SelectedValue) cmd.Parameters.AddWithValue("@d2", cmbProjeto.SelectedValue) cmd.Parameters.AddWithValue("@d3", cmbReferencia.SelectedValue) cmd.Parameters.AddWithValue("@d4", TextBox1.Text) cmd.Parameters.AddWithValue("@d5", dtpEntrada.Value.ToString("yyyy-mm-dd")) cmd.Parameters.AddWithValue("@d6", cmbMeses.SelectedItem) cmd.Parameters.AddWithValue("@d7", dtpDataSaida.Value.ToString("yyyy-mm-dd")) cmd.Parameters.AddWithValue("@d8", PictureBox1.Image) cmd.Parameters.AddWithValue("@d9", PictureBox2.Image) cmd.Parameters.AddWithValue("@d10", PictureBox3.Image) cmd.Parameters.AddWithValue("@d11", PictureBox4.Image) cmd.Parameters.AddWithValue("@d12", PictureBox5.Image) cmd.Parameters.AddWithValue("@d13", PictureBox6.Image) cmd.Parameters.AddWithValue("@d14", PictureBox7.Image) cmd.Parameters.AddWithValue("@d15", PictureBox8.Image) con.Open() cmd.ExecuteNonQuery() con.Close() da.Fill(dt) ElseIf CheckBox1.Checked = False Then Try con.ConnectionString ="The connection is good! I've used it on select statements" Catch ex As Exception End Try Dim da As New MySqlDataAdapter() Dim dt As New DataTable() Dim cmd As New MySqlCommand("INSERT INTO D8_ALERTAQUALIDADE(CLIENTE, PROJETO, REFERENCIA, DESCRICAO, DATA_ENTRADA, DURACAO, DATA_SAIDA, FOTO1_OK, FOTO2_OK, FOTO3_OK, FOTO4_OK, FOTO1_NOK, FOTO2_NOK, FOTO3_NOK, FOTO4_NOK) VALUES(@D1,@D2,@D3,@D4,@D5,@D6,@D7,@D8,@D9,@D10,@D11,@D12,@D13,@D14,@D15)", con) cmd.Parameters.AddWithValue("@d1", cmbCliente.SelectedValue) cmd.Parameters.AddWithValue("@d2", cmbProjeto.SelectedValue) cmd.Parameters.AddWithValue("@d3", cmbReferencia.SelectedValue) cmd.Parameters.AddWithValue("@d4", TextBox1.Text) cmd.Parameters.AddWithValue("@d5", dtpEntrada.Value.ToString("yyyy-mm-dd")) cmd.Parameters.AddWithValue("@d6", cmbUmMes.SelectedItem) cmd.Parameters.AddWithValue("@d7", dtpDataSaida.Value.ToString("yyyy-MM-dd")) cmd.Parameters.AddWithValue("@d8", PictureBox1.Image) cmd.Parameters.AddWithValue("@d9", PictureBox2.Image) cmd.Parameters.AddWithValue("@d10", PictureBox3.Image) cmd.Parameters.AddWithValue("@d11", PictureBox4.Image) cmd.Parameters.AddWithValue("@d12", PictureBox5.Image) cmd.Parameters.AddWithValue("@d13", PictureBox6.Image) cmd.Parameters.AddWithValue("@d14", PictureBox7.Image) cmd.Parameters.AddWithValue("@d15", PictureBox8.Image) con.Open() cmd.ExecuteNonQuery() con.Close() da.Fill(dt) End If
Richard MacCutchan
Какая строка вызывает ошибку?
Scribling Doodle
на обоих da.Fill(dt). Теперь он выдает мне такую ошибку: "свойство SelectedCommand не было инициализировано перед вызовом метода Fill." Есть идеи?
Richard MacCutchan
Вы не читали никаких данных в MySqlDataAdapter, поэтому нет ничего доступного, чтобы поместить в DataTable.
Scribling Doodle
Как это? Я просто использовал код из предыдущей программы, которую я сделал, и работал нормально. Теперь, на этот раз, это не работает ИДК почему. хотите, чтобы я обновил свой вопрос и установил код из другой программы, которая действительно работает?
Richard MacCutchan
Не имеет значения, что делает ваша другая программа. То, что вы закодировали здесь, просто неправильно, и простое чтение кода ясно показывает это.
Scribling Doodle
Я, кажется, не нахожу, где я ошибаюсь, вот почему я пришел сюда. Можете ли вы сказать мне, где я допустил какие-либо ошибки? Потому что я просто не могу его найти...
Richard Deeming
Один INSERT
запрос не возвращает никаких данных.
Richard MacCutchan
Даже если это и так, окружной прокурор ни с чем не связан.
Richard MacCutchan
Как я уже сказал выше, вы не поместили никаких данных в свой DataAdapter. И даже если вы измените свой запрос на команду SELECT, da все равно не будет подключен к этой команде. Если вы действительно не понимаете этого, то вам следует получить книгу или учебник о том, как использовать эти классы.
Scribling Doodle
Мне пришла в голову еще одна идея: используя "Условия использования", я сумел сделать именно то, что хотел. В любом случае спасибо :)