El formulario multiusuario en C# no se está guardando en la base de datos de SQL Server.
Estoy creando un programa para permitir que los usuarios de diferentes tipos inicien sesión utilizando las tres opciones de inicio de sesión realizadas en C#.
- Tipo de usuario
- Nombre de usuario
- Contraseña
La cadena de conexión de la base de datos y la consulta están funcionando. He hecho el inicio de sesión y agregado datos sin la variable “USERTYPE” para verificar problemas de conexión. Sin embargo, estoy teniendo un problema con este fragmento de código:
“` c#
private void button1_Click(object sender, EventArgs e)
{
string usernamedt, passworddt;
<pre><code>usernamedt = username.Text;
passworddt = password.Text;
try
{
string query = "SELECT * FROM log_data WHERE username = '" + username.Text.Trim() + "' AND password = '" + password.Text.Trim() + "' ";
SqlDataAdapter sda = new SqlDataAdapter(query, sqlco);
DataTable dt = new DataTable();
sda.Fill(dt);
string usertype = user_type.SelectedItem.ToString();
if (dt.Rows.Count > 0)
{
// state rows in table
for (int i = 0; i < dt.Rows.Count; i++)
{
if (dt.Rows[i]["usertype"].ToString() == usertype)
{
MessageBox.Show("You are logged in as " + dt.Rows[i][2]);
if (user_type.SelectedIndex == 0)
{
customer customer1 = new customer();
customer1.Show();
this.Hide();
}
else if (user_type.SelectedIndex == 1)
{
Staff staff1 = new Staff();
staff1.Show();
this.Hide();
}
else if (user_type.SelectedIndex == 2)
{
Trainer trainer1 = new Trainer();
trainer1.Show();
this.Hide();
} // end nested if*/
} //end check for user type
}// end for loop
}// end row count
else
{
MessageBox.Show("The username or password is incorrect, Try Again", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
} // end try block
catch
{
MessageBox.Show("Error ");
}
finally
{
sqlco.Close();
}
</code></pre>
} // end button LOG IN CLICK
“`
davy.ai
Descripción
En el fragmento de código dado, el autor ha creado un programa que permite a diferentes tipos de usuarios acceder a través de tres opciones (
Usertype
,Username
yPassword
) en C#. El autor ha escrito código para comprobar elUsertype
del usuario que ha accedido y mostrar un formulario específico en función delUsertype
seleccionado.Declaración del problema
El autor está teniendo problemas con el fragmento de código, específicamente con la funcionalidad de acceso. La funcionalidad de acceso no está funcionando como se esperaba. El código no puede acceder a los usuarios, incluso con combinaciones de
Username
yPassword
correctas.Solución
El fragmento de código dado está incompleto y no se puede determinar el problema exacto sin hacer pruebas. Sin embargo, en función del código, parece que el problema podría estar en la consulta
SELECT
. La consulta no utiliza la variableUsertype
para filtrar los resultados y la condiciónif
anidada para comprobar elUsertype
no parece necesaria.Aquí hay algunas sugerencias que podrían solucionar el problema:
Usertype
a la consultaSELECT
y usarlo en la cláusulaWHERE
. Esto asegurará que se devuelvan solo los registros con elUsertype
seleccionado.if
anidada y comprobar directamente elUsertype
en la cláusulaWHERE
.Aquí hay un fragmento de código modificado que incorpora las sugerencias anteriores:
Con estos cambios, la función de acceso debería funcionar como se esperaba.