2012-02-29 10 views
0

開発マシンの次のサブがスムーズに動作する理由を誰にでも説明できますが、別のPCにインストールしてインストールするとエラーが発生します。他のコンピュータに移動した後でvb.netのオブジェクト参照メッセージ

私が手にエラーが発生しました「ので、couldntのはどれかを示します。オブジェクト参照がオブジェクトのインスタンスに設定されていません」でそれが動作開発マシン上の一方

を。 どちらもWin7を実行していましたが、msdnのdatafileとsql-ce dllの配備指示書に記載されているように、すべてのsqlファイルを除外しました。

"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 
+0

これは、デバッガでかなり簡単に判断できるものです: 'ds'がnullであるか、* folders *というテーブルがありませんnull)、または 'irow'のfieldsコレクションがnullです。今度はIIRCの '.Rows'と' .Fields'コレクションは決してnullにならず、いくつかのオプションしか残しません。 – slugster

+0

私の開発マシンでは、デバッガはエラーを出さない。しかし、別のマシンにインストールされている場合。そして、他のマシンのエラーウィンドウにはあまり情報がありません。 (どのように私はそのマシンでデバッグしますか?愚かなqのため申し訳ありません) – renevdkooi

+0

明らかに、2番目のマシンのSQLCEデータベースは、devマシンのデータとは異なるデータを持っています。より多くのヌルチェックを構築してターゲットマシンに再デプロイするか、ターゲットからデータベースを取得し、デバッガでdevマシンで使用します(これはおそらく最も簡単で最速のソリューションです)。 – slugster

答えて

0

私はあなたの問題は、接続文字列であることを確認してください、それは右であることを確認した後、あなたは彼らが他のPCに含まれているすべての参照が含まれていたかどうかを確認かもしれないと思います。

+0

まあ私は今混乱しています...私はそれにいくつかの変更を加えましたが、私がOfficeを他のマシンにインストールした瞬間、すべてうまく動作しました。そして、VBを使用して私の開発マシンにプロセスをアタッチすると、いくつかのキャストエラーが発生しますが、アプリケーションが別のPCにインストールされ、そのソースにアタッチするとエラーは発生しません...それが接続か事務所だったら... – renevdkooi

0

何が問題だったかはまだ分かりません。しかし、ここでそれを解決する方法があります。

私は新しいプロジェクトを開いた。その後、(働いていなかったプロジェクトからSQLコンパクトデータベースファイルでした) 追加のデータベースソース が接続を作成する手順に従って、データアダプターとデータセット 設定は、その後、私のプロジェクトに保存された - の設定変数を。

私は7つのコンパクトなsqlファイル(sqlce * .dll)をプロジェクトにドラッグし、新しいものをコピーするように設定しました。 [マイプロジェクト] - [アプリケーションファイル]の[公開]タブで、それらが含まれ、データファイルがDATAに設定されていることを確認しました。

また、フレームワーク3.5とSQL CE 3.5が必要です。 私はすべてのデータにアクセスできます...非常に非常に奇妙です...

関連する問題