簡體   English   中英

在控制台應用程序中使用WCF服務

[英]Consuming WCF service in Console Application

我是這個網站的新手。 我目前正在wcf上工作。 我正在嘗試通過這項艱苦的工作來實現目標,但遇到了一些問題。我在MS Visual Stuido 2015中運行了WCF服務,該服務具有名為AccountBalance的本地類,並且該類具有一些字符串屬性,例如account_number,account_balace等。我創建了數據庫在MS Sql服務器中。 目前,我正在控制台應用程序中使用wcf服務。我試圖通過使用帳號作為鍵從控制台窗口的數據庫中檢索記錄。 當我輸入帳號時,它應該在控制台應用程序中顯示數據庫中的其余記錄,但是我收到錯誤消息,說我無法運行它。 無法從'string'轉換為MyService.AccountBalanceRequest'這是從另一個基類繼承的類代碼。

           [DataContract]
         public class AccountBalanceRequest : Current_Account_Details
            {
    string account_number;

    [DataMember]
    public string Account_Number
    {
        get { return account_number; }
        set { account_number = value; }
    }
}

}

這是ADO.NET代碼。

      public bool AccountBalanceCheek(AccountBalanceRequest accountNumber)
    {
        using (SqlConnection conn = new SqlConnection(ConnectionString))
        {
            conn.Open();
            using (SqlCommand cmd = new SqlCommand("SELECT * FROM 
             Current_Account_Details WHERE Account_Number ='" + 
              accountNumber.Account_Number + "'", conn))
            {
                cmd.Parameters.AddWithValue("@Account_Number", 
                accountNumber.Account_Number);
               cmd.CommandType = CommandType.Text;
                cmd.ExecuteNonQuery();
                return true;

            }

        }
    }

這是控制台應用程序代碼。

      public static void Balance()
    {
        MyService.HalifaxCurrentAccountServiceClient currentAccount = new MyService.HalifaxCurrentAccountServiceClient("NetTcpBinding_IHalifaxCurrentAccou
            ntService");

        MyService.AccountBalanceRequest cs = new MyService.AccountBalanceRequest();


        string AccountNumber;


        Console.WriteLine("\nEnter your Account Number--------:");
        AccountNumber = Console.ReadLine();
        cs.Account_Number = AccountNumber;
         MyService.AccountBalanceRequest cs1 = 

     currentAccount.AccountBalanceCheek(AccountNumber);//Error on this line.

                Console.WriteLine("Your Account Number is :" + cs.Account_Number);
                Console.WriteLine("Your Account Type :" + cs.Account_Balance);
                Console.WriteLine("Your Account Account Fee :" + cs.Account_Fee);
                Console.WriteLine("Your Account Balance:" + cs.Account_Balance);
                Console.WriteLine("Your Account Over Draft Limit :" + cs.Over_Draft_Limit);

                Console.Write("--------------------------");
                Console.ReadLine();




    }

我也嘗試過這種方式。 該代碼確實出現任何錯誤,但未給出預期結果。 這是代碼。

  public static void Balance()
    {
        MyService.HalifaxCurrentAccountServiceClient currentAccount = new MyService.HalifaxCurrentAccountServiceClient("NetTcpBinding_IHalifaxCurrentAccountService");
        MyService.AccountBalanceRequest cs = new MyService.AccountBalanceRequest();


        string AccountNumber;


        Console.WriteLine("\nEnter your Account Number--------:");
        AccountNumber = Console.ReadLine();
        cs.Account_Number = AccountNumber;
        // MyService.AccountBalanceRequest cs1 = currentAccount.AccountBalanceCheek(AccountNumber);



       if (currentAccount.AccountBalanceCheek(cs))
        {

                Console.WriteLine("Your Account Number is :" + cs.Account_Number);
                Console.WriteLine("Your Account Type :" + cs.Account_Balance);
                Console.WriteLine("Your Account Account Fee :" + cs.Account_Fee);
                Console.WriteLine("Your Account Balance:" + cs.Account_Balance);
                Console.WriteLine("Your Account Over Draft Limit :" + cs.Over_Draft_Limit);

                Console.Write("--------------------------");
                Console.ReadLine();
                //Console.Clear();


       }

    }

這是輸出圖像。 這是輸出的圖像

正確的方法是:

currentAccount.AccountBalanceCheek(cs);

不:

currentAccount.AccountBalanceCheek(AccountNumber);

因為參數的類型是MyService.AccountBalanceRequest ,而不是string

希望對您有所幫助:)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM