2010-11-29 7 views
0

私はMobile 6 Classic電話アプリケーションを初めて使用しており、SqlCeResultSetに問題があります。私はこれでDataGridを塗りつぶしようとしています:SqlCeResultSetが1つの行だけを返すのはなぜですか?

Private Sub LookUpRoutes() 
    Dim dir As String = Path.GetDirectoryName(Reflection.Assembly _ 
     .GetExecutingAssembly().GetName().CodeBase) 

    Dim Sql As String = "SELECT RouteID, Name, Description FROM Routes " & _ 
     "Where IsDeleted = 0" 

    Using con As SqlCeConnection = New SqlCeConnection(_ 
     String.Format("Data Source = '{0}\database\RouteTracker.sdf'", dir)) 

     con.Open() 

     Using cmd As SqlCeCommand = New SqlCeCommand(Sql, con) 
      cmd.CommandType = CommandType.Text 

      Dim resultSet As SqlCeResultSet = _ 
       cmd.ExecuteResultSet(ResultSetOptions.Scrollable) 
      dgRoutes.DataSource = resultSet 
     End Using 
    End Using 
End Sub 

しかし、私はその中から1行だけ埋め戻しています。残りの行は、データの代わりにフィールドにxが表示されます(下の図を参照)。

alt text

私が間違って何をしているのですか?

答えて

1

私は、dgRoutesが積極的に開いている接続を使用しているresultSetを使用していると推測します。おそらく、すべてが高速に動作するように、ビューはスクロールされた結果(ResultSetOptions.Scrollable)のみを照会するため、必要に応じて追加のデータをプルできるように接続を開いたままにする必要があります。

0

私は、なぜこの作品わからないが、私はは、SqlCeConnection =新規たSqlCeConnectionとして使用して詐欺を取り除くだけcon.open使用して、そうすることが、それを作るためのコードにcon.closeを追加する衝動に抵抗してしまったではないが再び動作します。

誰かが、機能を破らずに接続を閉じて処分できない理由を記入できますか?別の方法がありますか?

関連する問題