Acest articol este un articol oglindă al traducerii automate, vă rugăm să faceți clic aici pentru a sări la articolul original.

Vedere: 41320|Răspunde: 12

[ASP.NET] [DBHelp] folosește tehnologia de reflexie pentru a încapsula obiecte în Liste

[Copiază linkul]
Postat pe 20.04.2015 14:52:57 | | | |
Această postare a fost editată ultima dată de Delver_Si la 21-04-2015, ora 16:09

Ce tip de entitate îmi este dat și ce tip de colecție de entități este returnat

  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.         }
Cod de copiere

Tot 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. }
Cod de copiere



Scor

Numărul participanților1MB+1 Contribui+1 Colaps rațiune
Mică mizerie + 1 + 1 Foarte puternic!

Vezi toate ratingurile





Precedent:Rețeaua școlilor Ruijie este instabilă și adesea se întrerupe, am o soluție!
Următor:Japonia dezvoltă camere de mare viteză
 Proprietarul| Postat pe 20.04.2015 15:56:40 |
Xiao Zhazha A Postat la 20-04-2015 15:36
O să încerc asta noaptea, ar fi mai bine dacă ar exista un exemplu

Există exemple
 Proprietarul| Postat pe 20.04.2015 15:56:38 |
Xiao Zhazha A Postat la 20-04-2015 15:36
O să încerc asta noaptea, ar fi mai bine dacă ar exista un exemplu

Există exemple
Postat pe 01.08.2015 15:57:53 |
Atașat este un cod de execuție al unei tranzacții DBHelp

Postat pe 20.04.2015 15:36:14 |
O să încerc asta noaptea, ar fi mai bine dacă ar exista un exemplu
 Proprietarul| Postat pe 21.04.2015 16:10:01 |
actualizat
Postat pe 21.04.2015 16:50:50 |
Poți încărca un exemplu de pachet comprimat?
 Proprietarul| Postat pe 21.04.2015 21:06:48 |
sursă

ManualAssign.rar

180,66 KB, Timpi de descărcare: 6, Credite de descărcare: -1 prestigiu, -1 contribuție

 Proprietarul| Postat pe 21.04.2015 21:07:00 |
Xiao Zhazha Postat la 2015-4-21 16:50
Poți încărca un exemplu de pachet comprimat?

trimis
Postat pe 22.04.2015 08:31:39 |

Bine, o să mă uit
Postat pe 22.04.2015 10:51:19 |

Ia-l și spune mulțumesc
Disclaimer:
Tot software-ul, materialele de programare sau articolele publicate de Code Farmer Network sunt destinate exclusiv scopurilor de învățare și cercetare; Conținutul de mai sus nu va fi folosit în scopuri comerciale sau ilegale, altfel utilizatorii vor suporta toate consecințele. Informațiile de pe acest site provin de pe Internet, iar disputele privind drepturile de autor nu au legătură cu acest site. Trebuie să ștergi complet conținutul de mai sus de pe calculatorul tău în termen de 24 de ore de la descărcare. Dacă îți place programul, te rugăm să susții software-ul autentic, să cumperi înregistrarea și să primești servicii autentice mai bune. Dacă există vreo încălcare, vă rugăm să ne contactați prin e-mail.

Mail To:help@itsvse.com