0

私はwcfと残りの操作が初めてなので、どんな助けでもありがとう。

rdlc または datagridview に情報を表示するにはどうすればよいですか?

私のインターフェイスは、GetAllCustomer というメソッドを使用して操作コントラクトをセットアップします

namespace ConnectionToDatabase
{
    // NOTE: You can use the "Rename" command on the "Refactor" menu to change the interface name "IGetCustomer" in both code and config file together.
    [ServiceContract]
    public interface IGetCustomer
    {
        [OperationContract]
        [WebInvoke(Method = "GET",
            ResponseFormat = WebMessageFormat.Xml,
            BodyStyle = WebMessageBodyStyle.Wrapped,
            UriTemplate = "xml/customers")]        
        List<Customer> GetAllCustomer();
    }
}

インターフェイス クラスを実装し、SQL データベースに接続して顧客情報のリストを返す顧客クラス

public class GetCustomer : IGetCustomer
    {
        public List<Customer> GetAllCustomer()
        {
            List<Customer> mylist = new List<Customer>();

            using (SqlConnection conn = new SqlConnection("Data Source=MATRIX\;Initial Catalog=******;Integrated Security=True"))
            {
                conn.Open();

                string cmdStr = String.Format("select * from CInformation c inner join EmploymentInformation e on c.CID = e.CID");
                SqlCommand cmd = new SqlCommand(cmdStr, conn);
                SqlDataReader rd = cmd.ExecuteReader();

                if (rd.HasRows)
                {
                    while (rd.Read())
                    {
                        mylist.Add(new Customer(rd["LastName"].ToString(), rd["FirstName"].ToString(), rd["MiddleName"].ToString(), rd["EmailAddress"].ToString(), rd["PhoneNumber"]));
                    }
                }
                conn.Close();
            }

            return mylist;
        }
    }

    [DataContract]
    public class Customer
    {
        [DataMember]
        public string lastname { get; set; }
        [DataMember]
        public string firstname { get; set; }
        [DataMember]
        public string middlename { get; set; }
        [DataMember]
        public string emailaddress { get; set; }
        [DataMember]
        public string phonenumber { get; set; }            
        public Customer(string last, string first, string middle, string email, string phone)
        {
            this.lastname = last;
            this.firstname = first;
            this.middlename = middle;
            this.emailaddress = email;
            this.phonenumber = phone;                
        }


    }//end of class

ウェブ構成

<?xml version="1.0"?>
<configuration>
  <system.web>
    <compilation debug="true" targetFramework="4.0" />
  </system.web>
  <system.serviceModel>

    <services>
      <service name="ConnectionToDatabase.GetCustomer" behaviorConfiguration="EmpServiceBehaviour">
        <endpoint address ="" binding="webHttpBinding" contract="ConnectionToDatabase.IGetCustomer" behaviorConfiguration="web">
        </endpoint>
      </service>
    </services>

    <behaviors>
      <serviceBehaviors>
        <behavior name="EmpServiceBehaviour">
          <serviceMetadata httpGetEnabled="true"/>
          <serviceDebug includeExceptionDetailInFaults="false"/>
        </behavior>
      </serviceBehaviors>
      <endpointBehaviors>
        <behavior name="web">
          <webHttp/>
        </behavior>
      </endpointBehaviors>
    </behaviors>
    <serviceHostingEnvironment multipleSiteBindingsEnabled="true" />
  </system.serviceModel>
  <system.webServer>
    <modules runAllManagedModulesForAllRequests="true"/>
  </system.webServer>

</configuration>

Windows フォーム アプリ

public Form1()
{
    InitializeComponent();
}

private void btnGetAllCustomers_Click(object sender, EventArgs e)
{
 WebRequest request = WebRequest.Create("http://localhost:52420/GetCustomer.svc/xml/customers");
        WebResponse ws = request.GetResponse();

        StreamReader responseStream = new StreamReader(ws.GetResponseStream());
        string response = responseStream.ReadLine();
        responseStream.Close();   
        textBox1.AppendText(response);
}  

今はこんな感じ

テキストボックスで

<GetAllCustomerResponse xmlns="http://tempuri.org/"><GetAllCustomerResult xmlns:a="http://schemas.datacontract.org/2004/07/ConnectionToDatabase" xmlns:i="http://www.w3.org/2001/XMLSchema-instance"><a:Customer><a:firstname>Dog</a:firstname><a:lastname>Cat</a:lastname><a:middlename>up</a:middlename></a:Customer></GetAllCustomerResult></GetAllCustomerResponse>
4

1 に答える 1

0

あなたはこれを好きになる必要があります

    using (nServiceReferenceCustomers.GetCustomerClient svc = new ServiceReferenceCustomers.GetCustomerClient())
    {
        XmlNode node = svc.GetAllCustomer();
        DataSet ds = new DataSet();
        using (XmlNodeReader reader = new XmlNodeReader(node))
        {
            ds.ReadXml(reader);
        }


        DataTable table = ds.Tables["Table"];
        DataRow row = table.Rows[0];
        string Lastname= (string) row["lastname"];
        string Firstname= (string) row["firstname"];
        string Middlename= (string) row["middlename "];
string email= (string) row["emailaddress"];
string Phone= (string) row["phonenumber"];
    }
于 2012-11-11T04:32:26.517 に答える