Получение данных из веб-сервиса и отображение их в списке
Я пытаюсь получить данные о деятельности из веб-службы. Вот мои коды веб-сервисов.
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;
}
У меня есть следующий файл XAML для моего Windows Mobile.
<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>
Что касается файла 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;
}
}
Однако я столкнулся со следующей ошибкой в: Activitylist.Add(activity); Наилучшее перегруженное совпадение для System.Collections.Generic.List содержит недопустимые аргументы.
Может кто-нибудь, пожалуйста, просветите меня относительно этой ошибки. И что я должен сделать, чтобы решить эту ошибку. Спасибо
1 ответ
Решение
Вы объявили свой Activitylist как список строк, это должен быть список AllActivity
List<String> Activitylist = new List<String>();
должно быть
List<AllActivity> Activitylist = new List<AllActivity>();