我编写了一个非常简单的Web服务,它从SQL DB中的表中选择最重要的一个结果。我在Web服务中调用该类时遇到问题。我的Web服务中的类中有3个变量。我只是希望能够将变量分配给我正在使用Web服务的项目中的一组变量。
我的Web服务中有另一个类,我插入到我的数据库中,它工作正常,所以我知道Web服务正在运行。
这就是我所拥有的:
网络服务
[OperationContract]
void ViewDetails();
[DataContract]
public class ViewDetails
{
string titleView = string.Empty;
string descriptionView = string.Empty;
string authorView = string.Empty;
[DataMember]
public string TitleView
{
get { return titleView ; }
set { titleView = value; }
}
[DataMember]
public string DescriptionView
{
get { return descriptionView ; }
set { descriptionView = value; }
}
[DataMember]
public string AuthorView
{
get { return authorView ; }
set { authorView = value; }
}
}
public ViewDetails ViewDetails()
{
string titleView;
string descriptionView;
string authorView;
SqlConnection conn = new SqlConnection(strConnString);
conn.Open();
SqlCommand cmd = new SqlCommand("SELECT TOP 1 [My_Title] AS 'Title', [My_Description] AS 'Description', [My_Author] AS 'Author' FROM [TBL_My_Table]", conn);
SqlDataReader rdrDetails = cmd.ExecuteReader();
if (rdrDetails.HasRows)
{
titleView = rdrDetails.GetSqlString(rdrDetails.GetOrdinal("Title")).ToString();
sescriptionView = rdrDetails.GetSqlString(rdrDetails.GetOrdinal("Description")).ToString();
authorView = rdrDetails.GetSqlString(rdrDetails.GetOrdinal("Author")).ToString();
}
conn.Close();
return new ViewDetails
{
TitleView = titleView,
DescriptionView = descriptionView,
AuthorView = authorView
};
}
我想用查询结果填充变量
public Page1()
{
this.InitializeComponent();
}
任何人都可以帮我抓取我填写的Web服务中的3个变量并将它们带到上面的类中以显示在我的屏幕上吗?
我想要完成的示例
private void btnView_Click(object sender, RoutedEventArgs e)
{
ServiceReference1.Service1Client client = new ServiceReference1.Service1Client();
string author = string.Empty;
//this is what I think I should be able to do
author = client.ViewDetailsAsync.TitleView;
}
答案 0 :(得分:1)
您的网络服务实际上并未返回任何内容。它抓取数据,将数据存储在三个局部变量中,然后结束。从不实际使用ViewDetails
类或为调用者提供这些值。
更改您的网络服务方式以返回ViewDetails
:
public ViewDetails ViewDetails()
{
// your code
}
然后从方法返回该对象的实例:
public ViewDetails ViewDetails()
{
// your code
return new ViewDetails
{
TitleView = titleView,
DescriptionView = descriptionView,
AuthorView = authorView
};
}
然后,只要有人调用您的Web服务方法,它就会收到该方法提取的值。