1

您好我正在尝试使用 WCF 作为中间件将 Windows 商店应用程序连接到 SQL 服务器数据库。我能够成功地做到这一点。但我无法将值插入数据库。请问有人可以帮我吗?

这是我的代码:

这是 MainPage.xaml

<Page
    x:Class="WindowsStoreToSql.MainPage"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="using:WindowsStoreToSql"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    mc:Ignorable="d">

    <Grid Background="{StaticResource ApplicationPageBackgroundThemeBrush}" RenderTransformOrigin="0.508,0.484">
        <TextBox HorizontalAlignment="Left" Name="IdTextbox" TextWrapping="Wrap" Text="" VerticalAlignment="Top" Margin="108,162,0,0" Width="246"/>
        <TextBox HorizontalAlignment="Left" Name="NameTextbox" TextWrapping="Wrap" Text="" VerticalAlignment="Top" Margin="762,162,0,0" Width="246"/>
        <TextBox HorizontalAlignment="Left" Name="AgeTextBox"  TextWrapping="Wrap" Text="" VerticalAlignment="Top" Margin="762,314,0,0" Width="246"/>
        <TextBox HorizontalAlignment="Left" Name="GenderTextBox"  TextWrapping="Wrap" Text="" VerticalAlignment="Top" Margin="108,314,0,0" Width="246"/>
        <TextBox HorizontalAlignment="Left" Name="EmailTextBox"  TextWrapping="Wrap" Text="" VerticalAlignment="Top" Margin="762,241,0,0" Width="246"/>
        <TextBox HorizontalAlignment="Left" Name="PasswordTextBox"  TextWrapping="Wrap" Text="" VerticalAlignment="Top" Margin="108,241,0,0" Width="246"/>
        <Button Content="ShowData" Name="ShowData" HorizontalAlignment="Left" VerticalAlignment="Top" Margin="590,422,0,0" Click="ShowData_Click"/>
        <Button Content="InsertData" Name="InsertData" HorizontalAlignment="Left" VerticalAlignment="Top" Margin="352,422,0,0" Click="InsertData_Click"/>
        <GridView HorizontalAlignment="Left" Name="EmpGridview"  VerticalAlignment="Top" Width="150" Margin="646,162,0,0" Grid.Column="1" />

    </Grid>
</Page> 

这是 MainPage.xaml.cs:

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using Windows.Foundation;
using Windows.Foundation.Collections;
using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls;
using Windows.UI.Xaml.Controls.Primitives;
using Windows.UI.Xaml.Data;
using Windows.UI.Xaml.Input;
using Windows.UI.Xaml.Media;
using Windows.UI.Xaml.Navigation;
using Windows.UI.Popups;

namespace WindowsStoreToSql
{
    public sealed partial class MainPage : Page
    {
        App2.ServiceReference1.Service1Client MyService;
        public MainPage()
        {
            this.InitializeComponent();
        }
        protected override void OnNavigatedTo(NavigationEventArgs e)
        {
            MyService = new App2.ServiceReference1.Service1Client();
        }
        private async void InsertData_Click(object sender, RoutedEventArgs e)
        {
            await MyService.InsertEmployeeAsync(new App2.ServiceReference1.Employee() {EmpId = Convert.ToInt32(IdTextbox.Text), EmpName = NameTextbox.Text, EmpAge = AgeTextBox.Text, EmpGender = GenderTextBox.Text, EmpEmail = EmailTextBox.Text, EmpPassword = PasswordTextBox.Text });
        }
        private async void ShowData_Click(object sender, RoutedEventArgs e)
        {
            var EmpList = await MyService.GetEmployeeAsync();
            foreach (var Emp in EmpList)
            {
                GridViewItem EmpView = new GridViewItem();
                StackPanel Spanel = new StackPanel();
                Spanel.Children.Add(new TextBlock() { Text = Convert.ToString(Emp.EmpId) });
                Spanel.Children.Add(new TextBox() { Text = Emp.EmpName });
                Spanel.Children.Add(new TextBlock() { Text = Emp.EmpAge });
                Spanel.Children.Add(new TextBlock() { Text = Emp.EmpGender });
                Spanel.Children.Add(new TextBox() { Text = Emp.EmpEmail });
                Spanel.Children.Add(new TextBlock() { Text = Emp.EmpPassword });
                EmpView.Content = Spanel;
                EmpGridview.Items.Add(EmpView);
            }
        }
    }
}

我的问题:

在线:

await MyService.InsertEmployeeAsync(new App2.ServiceReference1.Employee() { EmpId = Convert.ToInt32(IdTextbox.Text), EmpName = NameTextbox.Text, EmpAge = AgeTextBox.Text, EmpGender = GenderTextBox.Text, EmpEmail = EmailTextBox.Text, EmpPassword = PasswordTextBox.Text });

我收到 EndpointNotFound 异常:

> There was no endpoint listening at
> http://localhostname/Design_Time_Addresses/WcfServiceLibrary1/Service1/
> that could accept the message. This is often caused by an incorrect
> address or SOAP action. See InnerException, if present, for more
> details.

我无法解决这个问题。谁能帮我解决这个问题?

谢谢你。

4

0 回答 0