Может кто-нибудь объяснить мне, почему следующий подраздел на машине разработки работает плавно, но когда я развертываю и устанавливаю на другой компьютер, я получаю сообщение об ошибке.Ссылка на объект-объект vb.net после перехода на другой компьютер
Ошибка я получаю «Couldnt показать любой, потому что: Ссылка на объект не указывает на экземпляр объекта»
В то время как на машине разработки он работает. Обе версии Win7, я включил все файлы sql, как указано в инструкции по развертыванию для файла данных и sql-ce dll из msdn.
Файл данных в порядке и соединение хорошее, потому что «cmd.ExecuteNonQuery()» работает без проблем.
Public Sub LoadFolders()
Dim ds As New DataSet
Dim da As SqlCeDataAdapter = New SqlCeDataAdapter()
Dim cmd As SqlCeCommand
Try
cmd = New SqlCeCommand("SELECT distinct(folder) from addressbook", connection.DbPrivate)
cmd.CommandType = Data.CommandType.Text
Catch e As Exception
Console.WriteLine("Could not execute sql: {0}", e.Message)
End Try
Try
With da
.SelectCommand = cmd
.Fill(ds, "folders")
End With
Catch e As Exception
Console.WriteLine("Unable to fill dataset: {0}", e.Message)
End Try
Try
For Each irow As DataRow In ds.Tables("folders").Rows
MsgBox(irow(0))
Next
Catch e As Exception
MsgBox("Couldnt show any because: " + e.Message) 'this is the error that pops up.
End Try
End Sub
Это то, что вы можете легко определить с помощью вашего отладчика: либо 'ds' равно null, либо нет таблицы, называемой * папками * (или это null), или коллекция полей 'irow' равна null. Теперь IIRC коллекция '.Rows' и' .Fields' никогда не должна быть нулевой, что оставляет только пару вариантов. – slugster
на моей машине dev отладчик не дает никаких ошибок. но при установке на другой машине. И окно ошибки на другой машине не дает много информации. (как мне отлаживать эту машину? извините за глупость q) – renevdkooi
Очевидно, что база данных SQLCE на втором компьютере имеет разные данные с данными на вашем компьютере-разработчике, следовательно, другой результат. Либо создайте больше нулевых проверок и передислоцируйте их на целевую машину, либо возьмите базу данных из целевого объекта и используйте его на своей машине с вашим отладчиком (это, вероятно, самое простое и быстрое решение). – slugster