/*TODO: * - ObservableCollection<clsPalabra> getPalabrasPorIdPrueba(int idPrueba) */ /// <summary> /// Método que obtiene la lista de palabras de una prueba /// </summary> /// <param name="idPrueba">int con el id de la prueba a la que pertenecen las palabras</param> /// <returns>ObservableCollection<clsPalabra> listaPalabras con el listado de las palabras obtenidas</returns> public ObservableCollection <clsPalabra> getPalabrasPorIdPrueba(int idPrueba) { clsMyConnection objConnection = new clsMyConnection(); SqlConnection connection = null; SqlCommand command = new SqlCommand(); SqlDataReader reader = null; ObservableCollection <clsPalabra> listaPalabras = new ObservableCollection <clsPalabra>(); clsPalabra objPalabra = null; try { connection = objConnection.getConnection(); command.Connection = connection; command.Parameters.Add("@idPrueba", System.Data.SqlDbType.VarChar).Value = idPrueba; command.CommandText = "SELECT * FROM CJ_Palabras pa INNER JOIN CJ_PruebasPalabras pp ON pa.idPalabra = pp.idPalabra WHERE idPrueba = @idPrueba"; reader = command.ExecuteReader(); if (reader.HasRows) { while (reader.Read()) { objPalabra = new clsPalabra(); objPalabra.IdPalabra = (int)reader["idPalabra"]; objPalabra.Palabra = (string)reader["palabra"]; objPalabra.Dificultad = (byte)reader["dificultad"]; listaPalabras.Add(objPalabra); } } } catch (Exception e) { throw e; } finally { if (reader != null) { reader.Close(); } if (connection != null) { objConnection.closeConnection(ref connection); } } return(listaPalabras); }
/// <summary> /// Método que obtiene los datos de una palabra ya existente en la BBDD. /// </summary> /// <param name="palabra">string con la palabra que se desea obtener</param> /// <returns>clsPalabra objPalabra, con todos los datos de la palabra obtenida de la BBDD</returns> public clsPalabra getPalabraExistente(string palabra) { clsMyConnection objConnection = new clsMyConnection(); SqlConnection connection = null; SqlCommand command = new SqlCommand(); SqlDataReader reader = null; clsPalabra objPalabra = null; try { connection = objConnection.getConnection(); command.Connection = connection; command.Parameters.Add("@palabra", System.Data.SqlDbType.VarChar).Value = palabra; command.CommandText = "SELECT * FROM CJ_Palabras WHERE palabra = @palabra"; reader = command.ExecuteReader(); if (reader.HasRows) { if (reader.Read()) { objPalabra = new clsPalabra(); objPalabra.IdPalabra = (int)reader["idPalabra"]; objPalabra.Palabra = (string)reader["palabra"]; objPalabra.Dificultad = (byte)reader["dificultad"]; } } } catch (Exception e) { throw e; } finally { if (reader != null) { reader.Close(); } if (connection != null) { objConnection.closeConnection(ref connection); } } return(objPalabra); }
/// <summary> /// Método que inserta una nueva palabra en la BBDD /// </summary> /// <param name="nuevaPalabra">clsPalabra con los datos de la nueva palabra</param> /// <returns>int idPalabra, de la palabra insertada en la BBDD</returns> public int insertarPalabra(clsPalabra nuevaPalabra) { clsMyConnection objConnection = new clsMyConnection(); SqlConnection connection = null; SqlCommand command = new SqlCommand(); //int filasAfectadas; Int32 idPalabra = 0; try { connection = objConnection.getConnection(); command.Connection = connection; command.Parameters.Add("@palabra", System.Data.SqlDbType.VarChar).Value = nuevaPalabra.Palabra; command.Parameters.Add("@dificultad", System.Data.SqlDbType.TinyInt).Value = nuevaPalabra.Dificultad; /*Me llama la atención meter dos sentencias SQL a la vez en el CommandText, pero en la documentación de microsoft lo hacen así, con la sentencia de inserción primero y después * el select, y obtiene el idJugador únicamente que era mi intención, porque es lo único que quiero pasarle a la siguiente vista*/ command.CommandText = "INSERT INTO CJ_Palabras(palabra, dificultad) VALUES (@palabra, @dificultad) " + "SELECT * FROM CJ_Palabras WHERE palabra = @palabra"; //Pilla sólo la primera columna y de la primera fila de las afectadas por la sentencia, en mi caso el idPalabra //Ejecuta la instrucción SQL idPalabra = (Int32)command.ExecuteScalar(); } catch (Exception e) { throw e; } finally { if (connection != null) { objConnection.closeConnection(ref connection); } } return((int)idPalabra); }
/// <summary> /// Método que inserta una nueva palabra en la BBDD /// </summary> /// <param name="nuevaPalabra">clsPalabra con los datos de la nueva palabra</param> /// <returns>int idPalabra, de la palabra insertada en la BBDD</returns> public int insertarPalabra(clsPalabra nuevaPalabra) { return(new clsHandlerPalabrasDAL().insertarPalabra(nuevaPalabra)); }