J'écris une méthode pour retourner une ligne 'asset' de la base de données. Il contient des chaînes, des entiers et un tableau d'octets (cela peut être une image/un film/un document).Le moyen le plus efficace d'obtenir une ligne de données à partir de DB dans ASP.NET
Maintenant, pour la plupart des accès aux lignes, j'utilise la méthode suivante qui retourne un NameValueCollection car il s'agit d'un objet léger, facile à utiliser et à utiliser avec des chaînes et des int. Maintenant, mon apporach pour ce type d'accès aux données serait normalement d'obtenir une méthode pour retourner une base de données.
public static DataRow ReturnDataRow(Database db, DbCommand dbCommand)
{
var dt = new DataTable();
using (IDataReader dr = db.ExecuteReader(dbCommand))
if (dr != null) dt.Load(dr);
dbCommand.Dispose();
return dt.Rows.Count != 0 ? dt.Rows[0] : null;
}
Il semble assez fastidieux de créer un DataTable puis de retourner sa première valeur de données.
Y a-t-il un meilleur moyen de le faire? Je pense peut-être à un dictionnaire d'objets que j'ai ensuite lancé manuellement chaque membre de.
Serait intéressant de voir comment les autres se sont attaqués à cela. Je sais que cela tombe dans le domaine de la micro-optimisation et aussi longtemps que je ne retourne pas DataSets pour chaque requête de ligne (je voudrais avoir une livre pour chaque fois que j'ai vu cela dans une ligne de code) ça devrait aller. Cela dit, cette méthode est susceptible d'être appelée pour l'attribution de requêtes d'accès aux données sur l'attribution de sites sur une seule boîte.
Vive
Steve
Juste un petit problème, mais l'appelant devrait appeler la méthode DbCommand.Dispose, pas vos méthodes de lecture de données. Puisque votre appelant a fourni l'objet dbCommand, il doit le dipuler. –