Cet article est un article miroir de traduction automatique, veuillez cliquer ici pour accéder à l’article original.

Vue: 41320|Répondre: 12

[ASP.NET] [DBHelp] utilise la technologie de réflexion pour encapsuler des objets dans des listes

[Copié le lien]
Publié sur 20/04/2015 14:52:57 | | | |
Ce post a été modifié pour la dernière fois par Delver_Si le 21-04-2015 à 16:09

Quel type d’entité m’est donné, et quel type de collection d’entités est retourné

  1. //得到一个list<T>
  2.         public static List<T> getList<T>(string strSql)
  3.         {
  4.             List<T> list = new List<T>();

  5.             SqlConnection sqlConn = new SqlConnection(strConn);
  6.             SqlCommand sqlComm = new SqlCommand(strSql, sqlConn);
  7.             sqlConn.Open();
  8.             SqlDataReader sqlDR = sqlComm.ExecuteReader();

  9.             while (sqlDR.Read())
  10.             {
  11.                 //得到T的类型
  12.                 Type t = typeof(T); ;

  13.                 //查看类中的属性:
  14.                 PropertyInfo[] pis = t.GetProperties();
  15.                 // 用反射生成对象
  16.                 T model = Activator.CreateInstance<T>();
  17.                 foreach (PropertyInfo pi in pis)
  18.                 {
  19.                     if (pi!= null)
  20.                     {
  21.                         //取得特定字段并赋值
  22.                         pi.SetValue(model, sqlDR[pi.Name].ToString(), null);
  23.                     }
  24.                     }

  25.                 list.Add(model);
  26.             }
  27.             sqlConn.Close();

  28.             return list;

  29.         }
Code de copie

Tout le DBHelp.cs
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Web;
  5. using System.Data;
  6. using System.Data.SqlClient;
  7. using System.Reflection;

  8. namespace ManualAssign
  9. {
  10.     public class DBHelp
  11.     {
  12.         //数据库连接字符串
  13.         private static string strConn = "server=.;database=ManualAssign;integrated security=true";

  14.         //得到一个DataTable
  15.         public static DataTable getTable(string strSql)
  16.         {
  17.             SqlConnection sqlConn = new SqlConnection(strConn);
  18.             SqlDataAdapter sqlDA = new SqlDataAdapter(strSql,sqlConn);
  19.             DataTable dt = new DataTable();
  20.             sqlDA.Fill(dt);
  21.             return dt;
  22.         }

  23.         //增删改
  24.         public static void upDateDB(string strSql)
  25.         {
  26.             SqlConnection sqlConn = new SqlConnection(strConn);
  27.             SqlCommand sqlComm = new SqlCommand(strSql, sqlConn);
  28.             sqlConn.Open();
  29.             sqlComm.ExecuteNonQuery();
  30.             sqlConn.Close();
  31.         }


  32.         //得到一个list<T>
  33.         public static List<T> getList<T>(string strSql)
  34.         {
  35.             List<T> list = new List<T>();

  36.             SqlConnection sqlConn = new SqlConnection(strConn);
  37.             SqlCommand sqlComm = new SqlCommand(strSql, sqlConn);
  38.             sqlConn.Open();
  39.             SqlDataReader sqlDR = sqlComm.ExecuteReader();

  40.             while (sqlDR.Read())
  41.             {
  42.                 //得到T的类型
  43.                 Type t = typeof(T); ;

  44.                 //查看类中的属性:
  45.                 PropertyInfo[] pis = t.GetProperties();
  46.                 // 用反射生成对象
  47.                 T model = Activator.CreateInstance<T>();
  48.                 foreach (PropertyInfo pi in pis)
  49.                 {
  50.                     if (pi!= null)
  51.                     {
  52.                         //取得特定字段并赋值
  53.                         pi.SetValue(model, sqlDR[pi.Name].ToString(), null);
  54.                     }
  55.                     }

  56.                 list.Add(model);
  57.             }
  58.             sqlConn.Close();

  59.             return list;

  60.         }

  61.     }
  62. }
Code de copie



Score

Nombre de participants1MO+1 contribuer+1 Effondrement raison
Petite ordure + 1 + 1 Très puissant !

Voir toutes les notes





Précédent:Le réseau de l’école Ruijie est instable et coupe souvent, j’ai une solution !
Prochain:Le Japon développe des caméras ultra-haute vitesse
 Propriétaire| Publié sur 20/04/2015 15:56:40 |
Xiao Zhazha Publié le 20-04-2015 à 15:36
Je vais essayer ça le soir, ce serait mieux s’il y avait un exemple

Il y en a des exemples
 Propriétaire| Publié sur 20/04/2015 15:56:38 |
Xiao Zhazha Publié le 20-04-2015 à 15:36
Je vais essayer ça le soir, ce serait mieux s’il y avait un exemple

Il y en a des exemples
Publié sur 01/08/2015 15:57:53 |
Un code d’exécution de transaction DBHelp est joint

Publié sur 20/04/2015 15:36:14 |
Je vais essayer ça le soir, ce serait mieux s’il y avait un exemple
 Propriétaire| Publié sur 21/04/2015 16:10:01 |
Mise à jour
Publié sur 21/04/2015 16:50:50 |
Pouvez-vous télécharger un exemple de package compressé ?
 Propriétaire| Publié sur 21/04/2015 21:06:48 |
source

ManualAssign.rar

180,66 Ko, Temps de téléchargement : 6, Crédits de téléchargement : -1 prestige, -1 contribution

 Propriétaire| Publié sur 21/04/2015 21:07:00 |
Xiao Zhazha Publié le 21-04-2015 à 16:50
Pouvez-vous télécharger un exemple de package compressé ?

envoyé
Publié sur 22/04/2015 08:31:39 |

D’accord, je vais jeter un œil
Publié sur 22/04/2015 10:51:19 |

Emportez-le, et dites merci
Démenti:
Tous les logiciels, supports de programmation ou articles publiés par Code Farmer Network sont uniquement destinés à l’apprentissage et à la recherche ; Le contenu ci-dessus ne doit pas être utilisé à des fins commerciales ou illégales, sinon les utilisateurs assumeront toutes les conséquences. Les informations sur ce site proviennent d’Internet, et les litiges de droits d’auteur n’ont rien à voir avec ce site. Vous devez supprimer complètement le contenu ci-dessus de votre ordinateur dans les 24 heures suivant le téléchargement. Si vous aimez le programme, merci de soutenir un logiciel authentique, d’acheter l’immatriculation et d’obtenir de meilleurs services authentiques. En cas d’infraction, veuillez nous contacter par e-mail.

Mail To:help@itsvse.com