Tämä artikkeli on konekäännöksen peiliartikkeli, klikkaa tästä siirtyäksesi alkuperäiseen artikkeliin.

Näkymä: 41320|Vastaus: 12

[ASP.NET] [DBHelp] käyttää heijastusteknologiaa kapseloidakseen objektit Listoihin

[Kopioi linkki]
Julkaistu 20.4.2015 14.52.57 | | | |
Tätä julkaisua muokasi viimeksi Delver_Si 21.4.2015 klo 16:09

Minkälainen entiteetti minulle annetaan ja millainen entiteetin kokoelma palautetaan

  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.         }
Kopioi koodi

Koko 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. }
Kopioi koodi



Pistetilanne

Osallistujien määrä1MB+1 myötävaikuttaa+1 Romahdus syy
Pikku roisto + 1 + 1 Erittäin voimakas!

Katso kaikki arviot





Edellinen:Ruijien kouluverkko on epävakaa ja usein katkeaa, minulla on ratkaisu!
Seuraava:Japani kehittää ultranopeita kameroita
 Vuokraisäntä| Julkaistu 20.4.2015 15.56.40 |
Xiao Zhazha Julkaistu 2015-4-20 klo 15:36
Kokeilen tätä yöllä, olisi parempi, jos olisi esimerkki

Esimerkkejä on
 Vuokraisäntä| Julkaistu 20.4.2015 15.56.38 |
Xiao Zhazha Julkaistu 2015-4-20 klo 15:36
Kokeilen tätä yöllä, olisi parempi, jos olisi esimerkki

Esimerkkejä on
Julkaistu 1.8.2015 15.57.53 |
Liitteenä on DBHelp-transaktioiden suorituskoodi

Julkaistu 20.4.2015 15.36.14 |
Kokeilen tätä yöllä, olisi parempi, jos olisi esimerkki
 Vuokraisäntä| Julkaistu 21.4.2015 16.10.01 |
päivitetty
Julkaistu 21.4.2015 16.50.50 |
Voisitko ladata esimerkin pakatusta paketista?
 Vuokraisäntä| Julkaistu 21.4.2015 21.06.48 |
lähde

ManualAssign.rar

180,66 KB, Latausajat: 6, Lataustiedot: -1 arvostus, -1 panos

 Vuokraisäntä| Julkaistu 21.4.2015 21.07.00 |
Xiao Zhazha Julkaistu 2015-4-21 klo 16:50
Voisitko ladata esimerkin pakatusta paketista?

lähetetty
Julkaistu 22.4.2015 8.31.39 |

Okei, katson
Julkaistu 22.4.2015 10.51.19 |

Vie se pois ja sano kiitos
Vastuuvapauslauseke:
Kaikki Code Farmer Networkin julkaisemat ohjelmistot, ohjelmamateriaalit tai artikkelit ovat tarkoitettu vain oppimis- ja tutkimustarkoituksiin; Yllä mainittua sisältöä ei saa käyttää kaupallisiin tai laittomiin tarkoituksiin, muuten käyttäjät joutuvat kantamaan kaikki seuraukset. Tämän sivuston tiedot ovat peräisin internetistä, eikä tekijänoikeuskiistat liity tähän sivustoon. Sinun tulee poistaa yllä oleva sisältö kokonaan tietokoneeltasi 24 tunnin kuluessa lataamisesta. Jos pidät ohjelmasta, tue aitoa ohjelmistoa, osta rekisteröityminen ja hanki parempia aitoja palveluita. Jos rikkomuksia ilmenee, ota meihin yhteyttä sähköpostitse.

Mail To:help@itsvse.com