2016-08-09 43 views
1

好奇,如果有人能幫助我?Azure Tables檢索/轉換數據問題

我有一個應用程序,假設上傳/下載數據到表中。將數據寫入表格沒有任何問題。閱讀是問題。

以下是我有:

首先是我的課:

Imports Microsoft.WindowsAzure.Storage.Table 

Public Class TimeRecord 
Inherits Microsoft.WindowsAzure.Storage.Table.TableEntity 
Implements Microsoft.WindowsAzure.Storage.Table.ITableEntity 

Private _Project1 As String 

Public Property Project1 As String 
    Get 
     Return _Project1 
    End Get 
    Set(ByVal value As String) 
     _Project1 = value 
    End Set 
End Property 


Public Property Data As String 
Public Property Category1 As String 
Public Property Description1 As String 
Public Property HRS1 As String 
Public Property MINS1 As String 

Public Property Project2 As String 
Public Property Category2 As String 
Public Property Description2 As String 
Public Property HRS2 As String 
Public Property MINS2 As String 


end class 

'next is the Upload, which is working fine and uploading all data to the table 

Public NewRecord As New TimeRecord 
Public CloudNewRecord As New TimeRecord 

' Finishing and uploading 
Private Sub Button_Finish_Click(sender As Object, e As EventArgs) Handles Button_Finish.Click 

    Call VariableAssign() ' that is where we assigning data to NewRecord.xxx="blah blah" etc 

    Dim accountname As String = "projects" 
    Dim accountkey As String = My.Settings.StorageKey 
    Dim creds As StorageCredentials = New StorageCredentials(accountname, accountkey) 
    Dim account As CloudStorageAccount = New CloudStorageAccount(creds, useHttps:=True) 
    Dim client As CloudTableClient = account.CreateCloudTableClient() 
    Dim table As CloudTable = client.GetTableReference("tdb") 

    table.CreateIfNotExists() 

    NewRecord.Data = _date 
    NewRecord.PartitionKey = ComboBox1.SelectedItem 
    NewRecord.RowKey = NewRecord.Data 

    ' Magically we write data to the cloud in Minesota 
    Dim insertoperation As TableOperation 
    insertoperation = TableOperation.InsertOrReplace(NewRecord) 
    table.Execute(insertoperation) 

    Call TimeCounter() 
    exSubUpload = False 
End Sub 


' **here is where I do have a problem casting**.... **I think I`m missing something in the Class declaration** 

' Retrieve from cloud 
Private Sub RetrieveFromCloud() 
    'Try 

    Dim accountname As String = "projects" 
    Dim accountkey As String = My.Settings.StorageKey 
    Dim creds As StorageCredentials = New StorageCredentials(accountname, accountkey) 
    Dim account As CloudStorageAccount = New CloudStorageAccount(creds, useHttps:=True) 
    Dim client As CloudTableClient = account.CreateCloudTableClient() 
    Dim table As CloudTable = client.GetTableReference("tdb") 

    Dim retrieveOperation As TableOperation 
    Dim retrievedResult As TableResult 

    retrieveOperation = TableOperation.Retrieve(ComboBox1.SelectedItem, _date) 
    ' it does retrieve all data and keep it in retrievedResult 

    retrievedResult = table.Execute(retrieveOperation) 

    **' that is I`m having problems - probably lack of knowledge/understanding - of how to cast all the data back to the class.** 
    CloudNewRecord = retrievedResult.Result 
    Debug.Print(CloudNewRecord.Project1) 


End Sub 

我只是不明白,爲什麼我可以寫NewRecord表,但我不能讀它從表格到同一個CloudNewRecord類? 我在VB.net中找不到任何好的例子。

任何幫助表示讚賞。

回答

0

GOT IT !!!!

Dim retrieveOperation As TableOperation 
    Dim retrievedResult As TableResult 

    retrieveOperation = TableOperation.Retrieve(Of TimeRecord)(ComboBox1.SelectedItem, _date) 
    retrievedResult = table.Execute(retrieveOperation) 

    Debug.Print(DirectCast(retrievedResult.Result, TimeRecord).Project1)