Возврат переменной из класса в MainForm - PullRequest
0 голосов
/ 23 февраля 2020

У меня есть раздел в моем классе, который выглядит так:

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;
}

К сожалению, в моих текстовых полях не отображаются значения из моей возвращенной таблицы данных.

Вы понимаете, почему?

1 Ответ

1 голос
/ 23 февраля 2020

Ваш метод 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();
...