【问题标题】:Return variable from class to MainForm将变量从类返回到 MainForm
【发布时间】:2020-02-23 16:49:57
【问题描述】:

我的班级中有这样的部分:

public Details GetTicketById(string @ref)
{
    var query = "SELECT * FROM support WHERE ref = @ref";

    var args = new Dictionary<string, object>
    {
        {"@ref", @ref}
    };

    DataTable dt = ExecuteRead(query, args);

    if (dt == null || dt.Rows.Count == 0)
    {
        return null;
    }

    var details = new Details
    {
        @ref = Convert.ToString(dt.Rows[0]["ref"]),
        subject = Convert.ToString(dt.Rows[0]["subject"]),
        contact_name = Convert.ToString(dt.Rows[0]["contact_name"]),
        company_name = Convert.ToString(dt.Rows[0]["company_name"]),
        description = Convert.ToString(dt.Rows[0]["description"]),
        business_impact = Convert.ToString(dt.Rows[0]["business_impact"]),
        severity = Convert.ToString(dt.Rows[0]["severity"])
    };


    return details;
}

我调试的时候知道有返回值。

我的主窗体中的按钮如下所示:

private void Button3_Click(object sender, EventArgs e)
{
    var getTicket = new ticket();

    getTicket.GetTicketById("1235");

    ticket.Details td = new ticket.Details();

    td.@ref = txtRef.Text;
    td.subject = txtSubject.Text;
    td.contact_name = txtContact_Name.Text;
    td.company_name = txtCompany_Name.Text;
    td.description = rtDescription.Text;
    td.business_impact = rtBusiness_Impact.Text;
    td.severity = txtSeverity.Text;
}

很遗憾,我的文本框没有显示我返回的数据表中的值。

你知道为什么吗?

【问题讨论】:

  • 假设new ticket() 是您的类的实例,方法为GetTicketById()。它返回值,但你不接受它。像这样更改:var details = getTicket.GetTicketById("1235"); 现在设置Text 属性像这样txtSubject.Text = details.subject 等等
  • 看起来您也将 textbox.Text 分配给您的 td.properties 而不是 "txtBox.Text = td.@ref"...
  • @Viewed:你是对的,你可以添加你的答案,我会接受,谢谢!
  • @merkithuseyin:是的,先生,您也说得对!谢谢

标签: c# return


【解决方案1】:

您的方法GetTicketById() 像您一样返回值并通过调试查看。但是你不要把这个值变成变量。这样做:

var details = getTicket.GetTicketById("1235");

要将Text 属性设置为新值,请执行以下操作:

txtSubject.Text = details.subject
txtContact_Name.Text = details.contact_name
txtCompany_Name.Text = details.company_name
// and so on 

此行需要删除

ticket.Details td = new ticket.Details();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-05-16
    • 1970-01-01
    • 2020-11-16
    • 1970-01-01
    • 2015-11-01
    • 1970-01-01
    • 2020-12-23
    • 1970-01-01
    相关资源
    最近更新 更多