BlendExpressionWindows MobileVisual Studio 2012.NET4.5XAMLSilverlightWCF设计/图形初学者C# 4.0SQLWindows.NETC#
在 Windows 8 应用商店应用中通过 Web 服务访问数据 - VS2012





0/5 (0投票)
使用 Web 服务或 WCF 在 Windows 应用商店应用的网格视图控件中显示数据
介绍
本文档用于将 SQL 数据库中的数据显示到 GridView 控件中。该应用程序是在 VS 2012 中使用 Windows 应用商店应用项目创建的。我们通过 Web 服务 / WCF 服务访问数据。
使用代码
步骤 1:需要创建并托管 Web 服务。在我的 Web 服务方法中,从 SQL Server 数据库中提取数据,并将方法的输出格式化为 XML 字符串。
步骤 2:从 VS2012 创建 Windows 应用商店应用项目。
步骤 3:添加服务引用(Web 服务/WCF 服务),命名为 CMHLocal。
步骤 4:在应用程序的 Model 文件夹中创建用于通过 Web 服务获取数据的类文件(文件名为:Resort.cs)。以下代码是类文件的示例。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace HelloWorld.Model
{
public class GetResortMaster
{
private string m_ResortID;
private string m_ResortFullName;
private string m_ResortShortName;
private string m_ResortAddress;
private string m_Status;
private string m_CVNotes;
private string m_GuestCVNotes;
private string m_VenueCompCVNotes;
public string ResortID
{
get { return m_ResortID; }
set { m_ResortID = value; }
}
public string ResortFullName
{
get { return m_ResortFullName; }
set { m_ResortFullName = value; }
}
public string ResortShortName
{
get { return m_ResortShortName; }
set { m_ResortShortName = value; }
}
public string ResortAddress
{
get { return m_ResortAddress; }
set { m_ResortAddress = value; }
}
public string Status
{
get { return m_Status; }
set { m_Status = value; }
}
public string CVNotes
{
get { return m_CVNotes; }
set { m_CVNotes = value; }
}
public string GuestCVNotes
{
get { return m_GuestCVNotes; }
set { m_GuestCVNotes = value; }
}
public string VenueCompCVNotes
{
get { return m_VenueCompCVNotes; }
set { m_VenueCompCVNotes = value; }
}
}
}
步骤 5:在您的 XAML 页面中,需要放置按钮和网格视图控件。例如,我创建了 MainPage.xaml 页面。需要在设计窗口中粘贴以下代码以创建按钮和网格视图控件。
<StackPanel Grid.Row="1" Margin="120,30,0,0">
<Button x:Name="btnDisplay" Click="DisplayData" />
<GridView x:Name="lvResort" ScrollViewer.VerticalScrollBarVisibility="Visible"
ItemsSource="{Binding}" HorizontalAlignment="Left"
Width="1070" Height="800">
<GridView.ItemTemplate>
<DataTemplate>
<Border BorderBrush="Red" Background="LightBlue" BorderThickness="2">
<StackPanel Orientation="Vertical" Height="200">
<TextBlock Text="Resort Details:" Foreground="BlueViolet"/>
<TextBlock x:Name="txtResortID" Text="{Binding ResortID}"
Padding="0,0,10,0" Width="50" HorizontalAlignment="Left"/>
<TextBlock x:Name="txtResortFName" TextWrapping="Wrap"
Text="{Binding ResortFullName}" Padding="0,0,10,0"
Width="200" HorizontalAlignment="Left"/>
<TextBlock TextWrapping="Wrap" Text="{Binding ResortShortName}"
Padding="0,0,10,0" Width="200" HorizontalAlignment="Left"/>
<TextBlock TextWrapping="Wrap" Text="{Binding ResortAddress}"
Padding="0,0,10,0" Width="200" HorizontalAlignment="Left"/>
<TextBlock TextWrapping="Wrap" Text="{Binding Status}"
Padding="0,0,10,0" Width="50" HorizontalAlignment="Left"/>
</StackPanel>
</Border>
</DataTemplate>
</GridView.ItemTemplate>
</GridView>
</StackPanel>
步骤 6:以下代码用于按钮单击事件,以在 MainPage.xaml.cs 文件中的网格视图控件中显示数据。
从以下代码中调用 Web 服务方法,并将方法的输出获取到字符串对象中。例如,我的 Web 服务方法输出格式为 XML。因此,使用 Resort.cs 将 XML 字符串转换为类对象。
private async void DisplayData(object sender, RoutedEventArgs e)
{
CMHLocal.CMHServiceClient cmhlocal1 = new CMHLocal.CMHServiceClient();
string x = await cmhlocal1.GetResortMasterDetailsAsync();
XDocument xdoc = XDocument.Parse(x);
IEnumerable<Model.GetResortMaster> getRes = from gr in xdoc.Descendants("GetResortMaster")
select new Model.GetResortMaster
{
ResortID = (string)gr.Attribute("ResortID"),
ResortFullName = (string)gr.Attribute("ResortFullName"),
ResortShortName = (string)gr.Attribute("ResortShortName"),
ResortAddress = (string)gr.Attribute("ResortAddress"),
Status=(string)gr.Attribute("Status")
};
lvResort.ItemsSource = getRes;
}
步骤 6:按下 'F5' 运行应用程序,然后单击按钮以在 GridView 控件中查看详细信息。