正在从web服务中的select语句获取结果

本文关键字:select 语句 获取 结果 web 服务 | 更新日期: 2023-09-27 18:22:35

我编写了一个非常简单的web服务,它从我的SQL DB中的表中选择最前面的一个结果。我在web服务中调用该类时遇到问题。在我的web服务中,我的类中有3个变量。我只想在我使用web服务的项目中能够将变量分配给一组变量。

我在我的web服务中有另一个类,我正在将它插入到我的DB中,它运行良好,所以我知道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;
    }

正在从web服务中的select语句获取结果

您的web服务实际上并没有返回任何东西。它获取数据,将数据存储在三个局部变量中,然后结束。永远不要实际使用ViewDetails类或向调用者提供这些值。

更改web服务方法以返回ViewDetails:

public ViewDetails ViewDetails()
{
    // your code
}

然后从方法返回该对象的实例:

public ViewDetails ViewDetails()
{
    // your code
    return new ViewDetails
    {
        TitleView = titleView,
        DescriptionView = descriptionView,
        AuthorView = authorView
    };
}

然后,每当有东西调用您的web服务方法时,它都会接收该方法获取的值。