Denne artikkelen er en speilartikkel om maskinoversettelse, vennligst klikk her for å hoppe til originalartikkelen.

Utsikt: 41320|Svare: 12

[ASP.NET] [DBHelp] bruker refleksjonsteknologi for å kapsle inn objekter i lister

[Kopier lenke]
Publisert på 20.04.2015 14:52:57 | | | |
Dette innlegget ble sist redigert av Delver_Si 21.04.2015 kl. 16:09

Hvilken type enhet er gitt til meg, og hvilken type enhetsinnsamling returneres

  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.         }
Kopier koden

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. }
Kopier koden



Score

Antall deltakere1MB+1 bidra+1 Sammenbrudd grunn
Lille skurk + 1 + 1 Veldig kraftig!

Se alle vurderinger





Foregående:Ruijie-skolenettverket er ustabilt og faller ofte ut, jeg har en løsning!
Neste:Japan utvikler ultrahøyhastighetskameraer
 Vert| Publisert på 20.04.2015 15:56:40 |
Xiao Zhazha Publisert 20.4.2015 kl. 15:36
Jeg skal prøve dette om natten, det hadde vært bedre om det fantes et eksempel

Det finnes eksempler
 Vert| Publisert på 20.04.2015 15:56:38 |
Xiao Zhazha Publisert 20.4.2015 kl. 15:36
Jeg skal prøve dette om natten, det hadde vært bedre om det fantes et eksempel

Det finnes eksempler
Publisert på 01.08.2015 15:57:53 |
Vedlagt er en DBHelp-kode for transaksjonsutførelse

Publisert på 20.04.2015 15:36:14 |
Jeg skal prøve dette om natten, det hadde vært bedre om det fantes et eksempel
 Vert| Publisert på 21.04.2015 16:10:01 |
Oppdatert
Publisert på 21.04.2015 16:50:50 |
Kan du laste opp et eksempel på en komprimert pakke?
 Vert| Publisert på 21.04.2015 21:06:48 |
kilde

ManualAssign.rar

180,66 KB, Nedlastingstider: 6, Nedlastingskreditter: -1 prestisje, -1 bidrag

 Vert| Publisert på 21.04.2015 21:07:00 |
Xiao Zhazha publisert 21.04.2015 kl. 16:50
Kan du laste opp et eksempel på en komprimert pakke?

sendt
Publisert på 22.04.2015 08:31:39 |

Ok, jeg skal ta en titt
Publisert på 22.04.2015 10:51:19 |

Ta den bort, og si takk
Ansvarsfraskrivelse:
All programvare, programmeringsmateriell eller artikler publisert av Code Farmer Network er kun for lærings- og forskningsformål; Innholdet ovenfor skal ikke brukes til kommersielle eller ulovlige formål, ellers skal brukerne bære alle konsekvenser. Informasjonen på dette nettstedet kommer fra Internett, og opphavsrettstvister har ingenting med dette nettstedet å gjøre. Du må fullstendig slette innholdet ovenfor fra datamaskinen din innen 24 timer etter nedlasting. Hvis du liker programmet, vennligst støtt ekte programvare, kjøp registrering, og få bedre ekte tjenester. Hvis det foreligger noen krenkelse, vennligst kontakt oss på e-post.

Mail To:help@itsvse.com