Witam, mój problem polega na tym, że komenda MySQL wykonuje się prawidłowo jeśli wstawię do niej bezpośrednio zmienne przekazywane do funkcji, natomiast przez parametry efektów nie widać, to znaczy pobiera tabelę, ale nie posortowaną jak należy i żaden wyjątek nie daje o sobie znać. Oczywiście ze względów bezpieczeństwa nie zostawię tego tak jak jest. Co może być przyczyną? W podobnej funkcji w której wykonuję zapytanie z aktualizacją bazy też używam parametrów i wszystko gra.
#region Pobranie tabeli produktów
public List<DBProductsModel> GetProducts(string orderBy, string orderHow)
{
List<DBProductsModel> products_list = new List<DBProductsModel>();
try
{
using (connection)
{
if (connection.State == ConnectionState.Closed)
connection.Open();
// MySqlCommand sqlCmd = new MySqlCommand("SELECT * FROM products ORDER BY @orderBy @orderHow", connection);
MySqlCommand sqlCmd = new MySqlCommand("SELECT * FROM products ORDER BY "+orderBy+" "+orderHow, connection);
sqlCmd.Parameters.AddWithValue("@orderBy", orderBy);
sqlCmd.Parameters.AddWithValue("@orderHow", orderHow);
MySqlDataReader reader = sqlCmd.ExecuteReader();
if (reader.HasRows)
{
while (reader.Read())
{
products_list.Add(new DBProductsModel {
product_id=reader.GetInt32(0),
product_name=reader.GetString(1),
product_quantity=reader.GetInt32(2),
product_price=reader.GetDecimal(3)
});
}
return products_list;
}
else
{
return null;
}
}
}
catch (MySqlException Ex)
{
MessageBox.Show(Ex.Message);
return null;
}
finally
{
connection.Close();
}
}
#endregion