Jump to content

[Resolvido] Tabelas/login/Pass


Recommended Posts

Posted

Boas pessoal...

Eu estou neste momento a fazer um mini programa em Windows form que compreende 2 textbox um para login e outro para a password e um button.

		private void btConnexion_Click(object sender, EventArgs e)
	{
		string[] tablog = new string[3] {"delv-n", "gila-r", "gilo-a"};
		string[] tabpass = new string[3] {"12345", "67890", "12345"};

		tbLogin.Text = Convert.ToString(tbLogin);
		tbPassword.Text = Convert.ToString(tbPassword);


		if (tbLogin = tablog[1])
		{

		}

Em 1º lugar, eu meti new string [3] porque assim vi no msdn mas é estranho pois uma tabela começa em 0. Neste caso aparentemente não pois contem 3 logins e se meto new string[2] ele dá-me erro e diz que o comprimento está errado.

Eu queria basicamente dizer ao programa que ao meter if (tbLogin = tablog[1]) ele tem de ir buscar a 1ª palavra da tabela, neste caso delv-n.

O problema aqui e o que me deixa confuso é que ao meter tablog[1] ele diz... Cannot implicitly convert type 'string' to 'System.Windows.Forms.TextBox'

Se tirar o 1 ele diz que falta ali um valor.

Neste momento encravei aqui e não como sair. Uma ajuda seria bem vinda. Poderá ser problemas de sintaxe ?

Posted

A comparação em C# é com o ==

E para leres o texto de uma textbox, tens de usar textbox.Text

E o primeiro elemento é o [0]

Operator '==' cannot be applied to operands of type 'System.Windows.Forms.TextBox' and 'string'

http://msdn.microsoft.com/fr-fr/library/aa288453%28v=vs.71%29.aspx

Aqui no msdn se reparares têm lá escrito:

string[] names = new string[3] {"Matt", "Joanne", "Robert"};

O que vai contra o facto do 1º elemento estar na posição 0

Posted

Operator '==' cannot be applied to operands of type 'System.Windows.Forms.TextBox' and 'string'

Isto resolve:

E para leres o texto de uma textbox, tens de usar textbox.Text

Aqui no msdn se reparares têm lá escrito:

string[] names = new string[3] {"Matt", "Joanne", "Robert"};

O que vai contra o facto do 1º elemento estar na posição 0

Como é que vai contra?

Quando fazes new string[3] quer dizer que estás a criar um array de strings com 3 elementos.

Em que o primeiro elemento está na posção 0, o segundo na posção 1 e o terceiro na posição 2.

Estás a misturar o total de elementos com a posição deles

  • Vote 1
Posted

Pensei que automaticamente o new string [3] era a posição deles, por isso pensava que o correcto seria new string [2]

disseste que para ler o texto de uma textbox tenho de usar o .Text mas no código que mostrei já está convertido:

tbLogin.Text = Convert.ToString(tbLogin);

tbPassword.Text = Convert.ToString(tbPassword);

Porque é que ainda tenho de usar o .Text se já tinha dito ao programa que tblogin.Text = tbLogin ?

Posted

Jasus, que confusão...

tbLogin.Text = Convert.ToString(tbLogin);
tbPassword.Text = Convert.ToString(tbPassword);

Tu queres que o texto da TextBox tome o valor da própria TextBox convertida para string??? Não te estou a perceber...

Se queres comparar o texto inserido na textbox com uma string do teu array fazes:

private void btConnexion_Click(object sender, EventArgs e)
{
	    string[] tablog = new string[3] { "delv-n", "gila-r", "gilo-a" };
	    string[] tabpass = new string[3] { "12345", "67890", "12345" };
	    if (tbLogin.Text == tablog[1])
	    {
		    MessageBox.Show("igual");
	    }
	    else
		    MessageBox.Show("diferente");
}
Posted

Jasus, que confusão...

tbLogin.Text = Convert.ToString(tbLogin);
tbPassword.Text = Convert.ToString(tbPassword);

Tu queres que o texto da TextBox tome o valor da própria TextBox convertida para string??? Não te estou a perceber...

Se queres comparar o texto inserido na textbox com uma string do teu array fazes:

private void btConnexion_Click(object sender, EventArgs e)
{
		string[] tablog = new string[3] { "delv-n", "gila-r", "gilo-a" };
		string[] tabpass = new string[3] { "12345", "67890", "12345" };
		if (tbLogin.Text == tablog[1])
		{
			MessageBox.Show("igual");
		}
		else
			MessageBox.Show("diferente");
}

É exactamente isso que eu queria. lol. Peço desculpa se não me fiz compreender.

if (tbLogin.Text == tablog[0])
{

}

E qual o objectivo desta parte?

O objectivo seria para que depois, não tivesse de fazer "if (tbLogin.Text == tablog[1]" mas simplesmente " if (tbLogin == tablog[1]" porque no meu ver, já estaria convertido ou seja tbLogin.Text passaria a ser simplesmente tbLogin.

Posted

tbLogin é uma textbox, por isso terás sempre de usar a propriedade Text para aceder ao texto.

Aquelas linhas não fazem o que estás a pensar que fazem.

tbLogin.Text = Convert.ToString(tbLogin);

Estás a atribuir ao texto da textbox, o objecto da textbox convertido para string.

Neste caso, a tbLogin ficará com o texto do tipo "System.Windows.Forms.TextBox", que é o tipo do objecto.

Não sei se vieste do VB6 onde se podia usar apenas o nome da textbox, que acedia à propriedade do texto.

Em C# isso não acontece, e normalmente tens de indicar explicitamente a propriedade que pretendes

Posted

Sim já programei em Visual basic 6.0 lol mas à muito anos atrás, entretanto meti-me a estudar outras coisas e nunca mais programei na vida. Hoje lá voltei.

Obrigado a todos pela pela explicação.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.