如何从PropertyMethod正确返回值?

时间:2014-01-20 09:52:38

标签: c# ado.net

首先,抱歉(再次)因为我的英语不好。

您好。我仍然是C#.NET的新手,我们现在的任务是让我们的教授使用ADO.NET数据库建立一个简单的银行系统。我现在唯一的问题是我似乎无法从我创建的PropertyMethod返回值。

以下是它的工作原理:我使用自动生成的用户名和密码登录,在下一个窗口中,我可以存款或取款。我想在文本框中显示从数据库中检索到的信息。

是否有正确的方法从PropertyMethod返回值?或者我可以采用其他方式来正确检索我想要的值吗?谢谢你的所有答案。

这是我的类库的一部分,它验证登录输入并应返回我想要的值:

编辑:我试着查看调试器来跟踪值发生了什么,但是它们返回了空值。

编辑2:删除了不必要的代码。

编辑3:感谢您注意我的错误。我已经修好了。我的程序现在工作正常。

这是一个有效的方法

#region pm
public string FinalName
{
 get { return finalName; }
 set { finalName = value; }
}

    public string FinalUname
    {
        get { return finalUname; }
        set { finalUname = value; }
    }

    public string Acnum
    {
        get { return acnum; }
        set { acnum = value; }
    }

    public string Pass
    {
        get { return pass; }
        set { pass = value; }
    }

    public string Actype
    {
        get { return actype; }
        set { actype = value; }
    }

    public string Mname
    {
        get { return mname; }
        set { mname = value; }
    }

    public string Lname
    {
        get { return lname; }
        set { lname = value; }
    }

    public string Fname
    {
        get { return fname; }
        set { fname = value; }
    }
    decimal bal;

    public decimal Bal
    {
        get { return bal; }
        set { bal = value; }
    }


    public bool Dup
    {
        get { return dup; }
        set { dup = value; }
    }
    #endregion

这是验证登录的代码。

    public bool authenticateData(string uname, string pass)
    {
        bool found = false;
        mySqlConnection.Open();
        SqlCommand readData = new SqlCommand("AuthenticateLogin", mySqlConnection);
        readData.CommandType = CommandType.StoredProcedure;
        readData.Parameters.Add("@Username", SqlDbType.NVarChar).Value = uname;
        readData.Parameters.Add("@Password", SqlDbType.NVarChar).Value = pass;
        SqlDataReader dr;
        dr = readData.ExecuteReader();
        while (dr.Read())
        {
            found = true;

            Actype = dr.GetString(3);
            Bal = dr.GetDecimal(5);
            Acnum = dr.GetString(6);
            FinalName = dr.GetString(0) + " " + dr.GetString(2) + " " + dr.GetString(1);
            break;
        }

        mySqlConnection.Close();
        return found;
    }
}
}

这是我的窗体:

    private void Transact_Load(object sender, EventArgs e)
    {
        //here is where my bug occurs

        txtName.Text = da.finalName;
        txtUsername.Text = da.finalUname;
        txtActType.Text = da.actype;
        txtBal.Text = da.Bal.ToString();

        type = txtActType.Text;

    }

1 个答案:

答案 0 :(得分:0)

在您的Windows窗体中,您正在访问名为da的对象的属性...但那是什么?你真的在任何地方将da设置为一类结果吗?您的示例代码不会在任何地方显示此内容。

authenticateData中,您使用datareader用您的结果填充某些属性,但这些属性属于什么 - 包含authenticateData方法的类?什么是da,你期望它如何得到你的结果值?