嗨,我在尝试从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显然没有问题以同样的方式触发类中的方法。谁知道我哪里出错?
答案 0 :(得分:1)
我看不到您实例化Login login
的代码。你应该真的这样做。
Login login = new Login();
或类似的东西。