2016-10-04 7 views
1

Я работаю над функцией входа в visual studio, у меня есть мой код, указанный ниже, для подключения к базе данных. Я не могу понять, что я делаю неправильно, но я получаю ошибку databaseConn.db_connection() is a method which is not valid in the given context.Ошибка подключения к базе данных в VB

using MySql.Data.MySqlClient; 

namespace Connection 
{ 
    static class databaseConn 
    { 
     static public void db_connection() 
     { 
      try 
      { 
       var conn = "Server=myhomeserver.net;Database=addonInstaller;Uid=root;Pwd=g278535814;"; 
       var connect = new MySqlConnection(conn); 
       connect.Open(); 
      } 
      catch (MySqlException e) 
      { 
       MessageBox.Show("Could not Connect to Server"); 
      } 
     } 
    } 

} 
namespace UserFunctions 
{ 
    static class Users 
    { 

     static public void LoginFunc(String username, String password) 
     { 

      CheckUsername(username, password); 
     } 
     static public void CheckUsername(String username, String password) 
     { 
      Connection.databaseConn.db_connection(); 
      MySqlCommand cmd = new MySqlCommand(); 
      cmd.CommandText = "SELECT * FROM users WHERE username=" + username + ""; 
      cmd.Connection = Connection.databaseConn.db_connection.Open(); //This is my error area. 
      MySqlDataReader login = cmd.ExecuteReader(); 
      if (login.Read()) 
      { 
       MessageBox.Show("Continue to Login"); 
      } 
      else 
      { 
       MessageBox.Show("Username Not Found"); 
      } 

     } 
    } 
} 

ответ

3

Вы должны определить db_connection как статическая функция, а не собственность, так что вы не можете использовать db_connection.Open().

Вы можете попытаться изменить свой db_connection вернуть connection object, или сохранить его как статическое свойство

databaseConn:

static public MySqlConnection db_connection() 
{ 
    try 
    { 
     var conn = "Server=myhomeserver.net;Database=addonInstaller;Uid=root;Pwd=g278535814;"; 
     var connect = new MySqlConnection(conn); 
     connect.Open(); 
     return connect; 
    } 
    catch (MySqlException e) 
    { 
     MessageBox.Show("Could not Connect to Server"); 
    } 

    return null; 
} 

Пользователи:

var conn = Connection.databaseConn.db_connection(); 
if (conn != null) 
{ 
    MySqlCommand cmd = new MySqlCommand(); 
    cmd.CommandText = "SELECT * FROM users WHERE username=" + username + ""; 
    cmd.Connection = conn; 
    MySqlDataReader login = cmd.ExecuteReader(); 
    ... ... 
+0

Спасибо! Это работает. Теперь для работы с ошибками SQL –

+0

Для SQL-ошибок обратитесь к следующему: http://stackoverflow.com/a/652999/1050927, используя параметр, который поможет вам предотвратить SQL-инъекцию. Если вы настаиваете на использовании простого SQL, попробуйте использовать это 'SELECT * FROM users WHERE username = '" + username + "'" ' – Prisoner

+0

А, так есть альтернатива PDO. (Используется для PHP) –

Смежные вопросы