x


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.

more ▼

asked Mar 18, 2012 at 11:40 AM

sephiroth111 gravatar image

sephiroth111
21 16 12 14

(comments are locked)
10|3000 characters needed characters left

1 answer: sort voted first

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.

more ▼

answered Mar 18, 2012 at 11:52 AM

Bunny83 gravatar image

Bunny83
74.6k 25 91 319

Thank you for that code. but still im searching for a way to use the parameter collection.

Mar 18, 2012 at 12:59 PM sephiroth111

Well if you need / want to use it, you might better use the 3 parameter version instead 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 MySqlDbType.Text? Usually you would use MySqlDbType.NVarChar.

Mar 18, 2012 at 04:33 PM Bunny83

SqlDbType wont work, that's why im using MySqlDbType. 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",MySqlDbType.Text,15,"username").Value = username; da.SelectCommand.Parameters.Add("@password",MySqlDbType.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

Mar 19, 2012 at 02:03 AM sephiroth111

i found the solution, instead of using @ i replaced ?

Mar 19, 2012 at 09:05 AM sephiroth111
(comments are locked)
10|3000 characters needed characters left
Your answer
toggle preview:

Up to 2 attachments (including images) can be used with a maximum of 524.3 kB each and 1.0 MB total.

Follow this question

By Email:

Once you sign in you will be able to subscribe for any updates here

By RSS:

Answers

Answers and Comments

Topics:

x9428
x1850
x159
x88
x75

asked: Mar 18, 2012 at 11:40 AM

Seen: 1995 times

Last Updated: Mar 19, 2012 at 09:05 AM