Dit artikel is een spiegelartikel van machinevertaling, klik hier om naar het oorspronkelijke artikel te gaan.

Bekijken: 41320|Antwoord: 12

[ASP.NET] [DBHelp] gebruikt reflectietechnologie om objecten in lijsten te verpakken

[Link kopiëren]
Geplaatst op 20-04-2015 14:52:57 | | | |
Dit bericht is voor het laatst bewerkt door Delver_Si op 21-4-2015 16:09

Welk type entiteit krijg ik en welk type entiteitscollectie wordt teruggegeven

  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 kopiëren

De hele 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 kopiëren



Partituur

Aantal deelnemers1MB+1 bijdragen+1 Instorting reden
Klein tuig + 1 + 1 Heel krachtig!

Bekijk alle beoordelingen





Vorig:Het Ruijie-schoolnetwerk is instabiel en valt vaak weg, ik heb een oplossing!
Volgend:Japan ontwikkelt ultra-hogesnelheidscamera's
 Huisbaas| Geplaatst op 20-04-2015 15:56:40 |
Xiao Zhazha Geplaatst op 20-4-2015 15:36
Ik ga dit 's avonds proberen, het zou beter zijn als er een voorbeeld was

Er zijn voorbeelden
 Huisbaas| Geplaatst op 20-04-2015 15:56:38 |
Xiao Zhazha Geplaatst op 20-4-2015 15:36
Ik ga dit 's avonds proberen, het zou beter zijn als er een voorbeeld was

Er zijn voorbeelden
Geplaatst op 01-08-2015 15:57:53 |
Bijgevoegd is een DBHelp-transactie-uitvoeringscode

Geplaatst op 20-04-2015 15:36:14 |
Ik ga dit 's avonds proberen, het zou beter zijn als er een voorbeeld was
 Huisbaas| Geplaatst op 21-04-2015 16:10:01 |
Bijgewerkt
Geplaatst op 21-04-2015 16:50:50 |
Kun je een voorbeeld uploaden van een gecomprimeerd pakket?
 Huisbaas| Geplaatst op 21-04-2015 21:06:48 |
bron

ManualAssign.rar

180,66 KB, Downloadtijden: 6, Downloadcredits: -1 prestige, -1 bijdrage

 Huisbaas| Geplaatst op 21-04-2015 21:07:00 |
Xiao Zhazha Geplaatst op 21-4-2015 16:50
Kun je een voorbeeld uploaden van een gecomprimeerd pakket?

verzonden
Geplaatst op 22-04-2015 08:31:39 |

Oké, ik zal even kijken
Geplaatst op 22-04-2015 10:51:19 |

Neem het mee en zeg dankjewel
Disclaimer:
Alle software, programmeermaterialen of artikelen die door Code Farmer Network worden gepubliceerd, zijn uitsluitend bedoeld voor leer- en onderzoeksdoeleinden; De bovenstaande inhoud mag niet worden gebruikt voor commerciële of illegale doeleinden, anders dragen gebruikers alle gevolgen. De informatie op deze site komt van het internet, en auteursrechtconflicten hebben niets met deze site te maken. Je moet bovenstaande inhoud volledig van je computer verwijderen binnen 24 uur na het downloaden. Als je het programma leuk vindt, steun dan de echte software, koop registratie en krijg betere echte diensten. Als er sprake is van een inbreuk, neem dan contact met ons op via e-mail.

Mail To:help@itsvse.com