[英]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.