- Home /
 
Unity3d C# select statement for GUI.TextArea
Good day to all, i have a problem, i have made a login with mysql remote connection. when im trying to login i cant login. i dont know how to use the GUI.TextArea exactly. here is my code:
 void OnGUI()
 {
 GUI.Box(new Rect(Screen.width/2-60,Screen.height/2-105,120,210),"Score");
 firstName = GUI.TextArea(new Rect(Screen.width/2-45,Screen.height/2-80,90,20),firstName);
 Password = GUI.TextArea(new Rect(Screen.width/2-45,Screen.height/2-50,90,20),Password);
 if(GUI.Button(new Rect(Screen.width/2-45,Screen.height/2-20,90,20),"Continue"))
 {
     SelectDatabase(firstName,Password);
 }
 if(GUI.Button(new Rect(Screen.width/2-50,Screen.height/2+70,100,20),"Back to Menu"))
 {
     Application.LoadLevel("mainMenu");
 }
 }
 public void SelectDatabase(string username, string password)
 {
 connectionstring = @"Server=db4free.net; Port=3306; Database=gladia***; Uid=der****; Password=*********;";
 conn = new MySqlConnection(connectionstring);
 da = new MySqlDataAdapter();
 ds = new DataSet();
 try 
 {
     da.SelectCommand = conn.CreateCommand();
     da.SelectCommand.CommandText = "select * from users where username=@username and password=@password";
     da.SelectCommand.CommandType = CommandType.Text;
     da.SelectCommand.Parameters.Add("@username",MySqlDbType.Text,15,"username").Value = username;
     da.SelectCommand.Parameters.Add("@password",MySqlDbType.Text,15,"password").Value = password;
     da.Fill(ds,"users");
     if (ds.Tables["users"].Rows.Count == 1) 
     {
         Debug.Log("pasok!");
     }
     else 
     {
         Debug.Log("Wrong username and Password");
     }
 } 
 catch (System.Exception ex) 
 {
     Debug.Log(ex.Message);
 }
 }
 
               if i change the @username to a correct username and @password to correct password im successfully login. what may be the possible reason why Debug.Log("Wrong username and Password"); always prompting? i think the problem is in firstName and Password variables but i dont know how to fix it. thank you in advance.
Answer by Bunny83 · Mar 18, 2012 at 11:52 AM
I never used the Parameters collection. Usually i just build the sql command "manually" like this:
 da.SelectCommand.CommandText = "select * from users where username='" + username + "' and password='" + password + "'";
 
               Beside that, keep in mind that a TextArea allows newline characters. You might want to use a TextField instead.
That might fix your problem, but your database setup is not very safe!!!
The C# code of your game can easily be viewed with a C# reflector, even from a web build. Never open a direct database connection from a user's PC. You usually use a server side script (like a PHP script) on a webserver to handle database interactions.
Thank you for that code. but still im searching for a way to use the parameter collection.
Well if you need / want to use it, you might better use the 3 parameter version ins$$anonymous$$d of the 4 parameter version. I'm not quite sure to what "source column" is referring to, but since it's just a parameter replacement in your query there is no source column. You feed the data external. I guess you might need a source column for subqueries or something like that.
Also do you need the type $$anonymous$$ySqlDbType.Text? Usually you would use $$anonymous$$ySqlDbType.NVarChar.
SqlDbType wont work, that's why im using $$anonymous$$ySqlDbType. still not working. i found the problem but i dont know how to fix it. the problem is not the textarea(i already changed it to textfield) but the
da.SelectCommand.Parameters.Add("@username",$$anonymous$$ySqlDbType.Text,15,"username").Value = username; da.SelectCommand.Parameters.Add("@password",$$anonymous$$ySqlDbType.Text,15,"password").Value = password;
i dont know why this is wrong but this is my way of coding even when im creating a simple software the involves local and remote database
i found the solution, ins$$anonymous$$d of using @ i replaced ?
Your answer
 
             Follow this Question
Related Questions
Problem in starting mysqld Process 0 Answers
MySql Online Character About 0 Answers
Multiple Cars not working 1 Answer
Distribute terrain in zones 3 Answers
Trigger player movement on touch 1 Answer