简体   繁体   English

从Web服务检索数据并将其显示在列表框中

[英]Retrieving data from webservice & displaying it in a listbox

I'm trying to retrieve activity data from webservice. 我正在尝试从Web服务检索活动数据。 Here's my webservice codes. 这是我的网络服务代码。

 public string getRecentActivity(string userName)
 {
     string result1 = "";
     string result2 = "";
     string result3 = "";
     string result4 = "";
     string result5 = "";

     string sql = "EXEC GetRecentActivities '" + userName + "'";
     SqlCommand cmd = new SqlCommand(sql, sqlConnection);
     SqlDataReader reader;

     try
     {
         sqlConnection.Open();
         reader = cmd.ExecuteReader();
         while (reader.Read())
         {
             result1 += reader[0] + "#";
             result2 += reader[1] + "#";
             result3 += reader[2] + "#";
             result4 += reader[3] + "#";
             result5 += reader[4] + "#";

         }
     }
     catch (Exception) {  }

     return result1 + "~" + result2 + "~" + result3 + "~" + result4 + "~" + result5;
 }

I've the following XAML file for my windows mobile. 我的Windows Mobile有以下XAML文件。

<ListBox Grid.Row="1" Height="Auto" HorizontalAlignment="Left" Margin="12,140,0,0" Name="lb_AllActivity" VerticalAlignment="Top" Width="Auto" FontFamily="Tahoma" FontSize="25"> 
                <ListBox.ItemTemplate> 
                    <DataTemplate> 
                        <Grid> 
                            <Border Margin="3"> 
                                <StackPanel Background="Transparent" Orientation="Vertical" Width="420" Height="60"> 
                                    <StackPanel Background="Transparent" Orientation="Horizontal" Width="420" Height="60"> 
                                        <TextBlock Foreground="White" HorizontalAlignment="Left" TextWrapping="Wrap" VerticalAlignment="Center" Text="{Binding DateTime}"></TextBlock> 
                                        <TextBlock Foreground="White" HorizontalAlignment="Left" TextWrapping="Wrap" VerticalAlignment="Center" Text="{Binding Amt}"></TextBlock> 
                                        <TextBlock Foreground="White" HorizontalAlignment="Left" TextWrapping="Wrap" VerticalAlignment="Center" Text="{Binding Msg}"></TextBlock>                     
                                    </StackPanel> 
                                </StackPanel> 
                            </Border> 
                        </Grid> 
                    </DataTemplate> 
                </ListBox.ItemTemplate> 
            </ListBox> 

As for the CS file, I've the following code: I've the following codes in my CS FIle 至于CS文件,我有以下代码:CS文件中有以下代码

public partial class Activities : PhoneApplicationPage 
{ 
    DatabaseService.ServiceSoapClient dbService = new DatabaseService.ServiceSoapClient(); 


    public Activities() 
    { 
        InitializeComponent(); 
        InitializeComponent(); 
        dbService.getAllActivityAsync("Russell Loh"); 
        dbService.getAllActivityCompleted += new EventHandler<DatabaseService.getAllActivityCompletedEventArgs>(dbService_getAllActivity); 

    } 

    public class AllActivity  
    { 
        public string TransID { get; set; } 
        public string Amt { get; set; } 
        public string Cat { get; set; } 
        public string SharedNo { get; set; } 
        public string Msg { get; set; } 
        public string DateTime { get; set; } 
    } 

    void dbService_getAllActivity(object sender, DatabaseService.getAllActivityCompletedEventArgs e) 
    { 

        if (e.Error == null) 
        { 
            string result = e.Result; 
            string[] arrayActivity = result.Split('~'); 

            string[] transID = arrayActivity[0].Split('#'); 
            string[] amount = arrayActivity[1].Split('#'); 
            string[] category = arrayActivity[2].Split('#'); 
            string[] sharedNum = arrayActivity[3].Split('#'); 
            string[] message = arrayActivity[4].Split('#'); 
            string[] dateTime = arrayActivity[5].Split('#'); 

            List<String> Activitylist = new List<String>(); 

            for (int i = 0; i < transID.Length; i++) 
            { 
                string TransID = transID[i]; 
                string Amt = amount[i]; 
                string Cat = category[i]; 
                string SharedNo = sharedNum[i]; 
                string Msg = message[i]; 
                string DateTime = dateTime[i]; 


               //create a new instance of activity
                AllActivity activity = new AllActivity();
                activity.Amt = Amt;
                activity.Msg = Msg;
                activity.DateTime = DateTime;

                Activitylist.Add(activity);

            } 

           lb_AllActivity.ItemsSource = Activitylist; 

        } 

      } 

However, I encountered the following error at : Activitylist.Add(activity); 但是,我在以下位置遇到了以下错误:Activitylist.Add(activity); The best overloaded match for 'System.Collections.Generic.List' has some invalid arguments. 'System.Collections.Generic.List'的最佳重载匹配具有一些无效的参数。

Can someone please enlighten me regarding this error. 有人可以启发我有关此错误的信息。 And what should I do to solve this error. 我应该怎么做才能解决这个错误。 Thanks 谢谢

You've declared your Activitylist as a list of strings, it should be a list of AllActivity 您已将Activitylist声明为字符串列表,它应该是AllActivity的列表

List<String> Activitylist = new List<String>();

should be 应该

List<AllActivity> Activitylist = new List<AllActivity>();

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM