从类运行MySQL查询时抛出异常

时间:2014-04-30 11:41:15

标签: c# mysql wpf

嗨,我在尝试从C#类运行SQL查询时遇到了一些危机。它在之前的登录页面中运行良好,当我移动它时,我对它的改变很少。

课堂上的SQL查询:

    namespace Masca
    {
    public class loginc
        {
        // Telling the class that the page 'Login' exists.
        public Login login;

...

    public void Login ()
    {
        // connection parameters
        string sqlcon = "datasource=localhost;port=3306;username = root; password = root";
        //Command to carry out -This is what the exception highlights when it's thrown.
        string query = "SELECT * FROM logon.login where username = '" + login.username.Text + "' and password = '" + login.password.Password + "';";

        MySqlConnection con = new MySqlConnection(sqlcon);

        MySqlCommand cmd = new MySqlCommand (query,con);

        MySqlDataReader rdr;
        con.Open();
        rdr = cmd.ExecuteReader();
        int count = 0;
        while (rdr.Read())
        {
            count = count + 1;
        }

        if (count == 1)
        {
            //If the username and password match those in the database table, run the method 'login' in the login page cs.
            login.login();
        }

        else
        {
            // if they don't match, run the method 'failLogin' in the login page cs.
            login.failLogin();
        }

    }

在login.cs中我有两个文本框和一个按钮。一个用于用户名,一个用于密码。按钮应该触发上面的代码:

    public void Logon_Click(object sender, RoutedEventArgs e)
    {
        loginc.Login();
    }

它做得很好。但是我得到的经典"对象引用未设置为对象的实例"查询抛出异常。当我输入实际凭据而不是' + login.username.Text +'和' + login.password.Password +'那么异常就会被抛到' login.Login()'。

我不明白为什么loginc.cs类拒绝与login.cs相关但是login.cs显然没有问题以同样的方式触发类中的方法。谁知道我哪里出错?

1 个答案:

答案 0 :(得分:1)

我看不到您实例化Login login的代码。你应该真的这样做。

Login login = new Login();

或类似的东西。