lrik64
@lrik64
Начинающий программист

Как исправить ошибку в клиентском приложении для службы WCF?

Условие задачи:
Разработать службу WCF, работающую с базой данных торговой компании. База содержит две таблицы – Заказчики (Customers) и Заказы (Orders). Служба имеет методы, позволяющие извлекать всех заказчиков, а также заказы для выбранного заказчика.
Разработать клиентское приложение для службы WCF, в котором использовать методы службы для извлечения и представления на веб-форме информации о заказчиках и их заказах.
При запуске выходит ошибка с прикреплённой картинки.
Файл Service1.svc:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.ServiceModel.Web;
using System.Text;
using System.Data.SqlClient;
 
namespace WcfService1
{
    // ПРИМЕЧАНИЕ. Команду "Переименовать" в меню "Рефакторинг" можно использовать для одновременного изменения имени класса "Service1" в коде, SVC-файле и файле конфигурации.
    // ПРИМЕЧАНИЕ. Чтобы запустить клиент проверки WCF для тестирования службы, выберите элементы Service1.svc или Service1.svc.cs в обозревателе решений и начните отладку.
    public class Service1 : IService1
    {
        public string GetData(int value)
        {
            return string.Format("You entered: {0}", value);
        }
 
        public CompositeType GetDataUsingDataContract(CompositeType composite)
        {
            if (composite == null)
            {
                throw new ArgumentNullException("composite");
            }
            if (composite.BoolValue)
            {
                composite.StringValue += "Suffix";
            }
            return composite;
        }
        public List<Customer> GetCustomers()
        {
          List<Customer> list = new List<Customer>();
          string str = System.Configuration.ConfigurationManager.ConnectionStrings["myDB"].ConnectionString;
          using (SqlConnection con = new SqlConnection(str))
          {
            SqlCommand com = new SqlCommand("Select * from Customers", con);
            con.Open();
            SqlDataReader r = com.ExecuteReader();
                while (r.Read())
                {
                    Customer c = new Customer();
                    c.Id = (int)r["Id"];
                    c.Name = r["Name"].ToString();
                    c.Surame = r["Surname"].ToString();
                    c.YearOfBirth = (int)r["YearOfBirth"];
                    list.Add(c);
                }
          }
            return list;
        }
        public List<Orders> GetOrders(int id)
        {
            List<Orders> list = new List<Orders>();
            string str = System.Configuration.ConfigurationManager.ConnectionStrings["myDB"].ConnectionString;
            using (SqlConnection con = new SqlConnection(str))
            {
                SqlCommand com = new SqlCommand("Select * from Orders where IdCust = @id", con);
                com.Parameters.Add(new SqlParameter("@id", id));
                con.Open();
                SqlDataReader r = com.ExecuteReader();
                while (r.Read())
                {
                    Orders o = new Orders();
                    o.Id = (int)r["Id"];
                    o.Title = r["Title"].ToString();
                    o.IdCust = (int)r["IdCust"];
                    o.Price = (int)r["Price"];
                    o.Quant = (int)r["Quant"];
                    list.Add(o);
                }
            }
            return list;
        }
    }
}

Код в методе Page_Load:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
 
namespace WebApplication1
{
    public partial class WebForm2 : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            ServiceReference1.Service1Client client = new ServiceReference1.Service1Client();
            GridView1.DataSource = client.GetCustomers();
            GridView1.DataBind();
            ServiceReference1.Service1Client order = new ServiceReference1.Service1Client();
            GridView2.DataSource = order.GetOrders(int.Parse(GridView1.SelectedRow.Cells[1].Text));
            GridView2.DataBind();
        }
    }
}

609f9044c92bc150654130.png
  • Вопрос задан
  • 63 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы