Šis straipsnis yra veidrodinis mašininio vertimo straipsnis, spauskite čia norėdami pereiti prie originalaus straipsnio.

Rodinys: 41320|Atsakyti: 12

[ASP.NET] [DBHelp] naudoja atspindžio technologiją, kad sutalpintų objektus į sąrašus

[Kopijuoti nuorodą]
Paskelbta 2015-04-20 14:52:57 | | | |
Šį pranešimą paskutinį kartą redagavo Delver_Si 2015-4-21 16:09

Kokio tipo objektas man suteikiamas ir kokio tipo objektų rinkinys grąžinamas

  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.         }
Kopijuoti kodą

Visas 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. }
Kopijuoti kodą



Vertinimas pagal

Dalyvių skaičius1MB+1 Prisidėti prie+1 Žlugimo priežastis
Mažai purvo + 1 + 1 Labai galingas!

Peržiūrėti visus įvertinimus





Ankstesnis:Ruijie mokyklų tinklas yra nestabilus ir dažnai nutrūksta, turiu sprendimą!
Kitą:Japonija kuria itin didelės spartos kameras
 Savininkas| Paskelbta 2015-04-20 15:56:40 |
Xiao Zhazha Publikuota: 2015-4-20 15:36
Pabandysiu tai naktį, būtų geriau, jei būtų pavyzdys

Yra pavyzdžių
 Savininkas| Paskelbta 2015-04-20 15:56:38 |
Xiao Zhazha Publikuota: 2015-4-20 15:36
Pabandysiu tai naktį, būtų geriau, jei būtų pavyzdys

Yra pavyzdžių
Paskelbta 2015-08-01 15:57:53 |
Pridedamas DBHelp operacijos vykdymo kodas

Paskelbta 2015-04-20 15:36:14 |
Pabandysiu tai naktį, būtų geriau, jei būtų pavyzdys
 Savininkas| Paskelbta 2015-04-21 16:10:01 |
Atnaujinta
Paskelbta 2015-04-21 16:50:50 |
Ar galite įkelti suspausto paketo pavyzdį?
 Savininkas| Paskelbta 2015-04-21 21:06:48 |
šaltinis

ManualAssign.rar

180.66 KB, Atsisiuntimo laikas: 6, Kreditų atsisiuntimo laikas: -1 prestižas, -1 indėlis

 Savininkas| Paskelbta 2015-04-21 21:07:00 |
Xiao Zhazha Publikuota: 2015-4-21 16:50
Ar galite įkelti suspausto paketo pavyzdį?

išsiųsta
Paskelbta 2015-04-22 08:31:39 |

Gerai, pažiūrėsiu
Paskelbta 2015-04-22 10:51:19 |

Atimkite jį ir pasakykite ačiū
Atsakomybės apribojimas:
Visa programinė įranga, programavimo medžiaga ar straipsniai, kuriuos skelbia Code Farmer Network, yra skirti tik mokymosi ir mokslinių tyrimų tikslams; Aukščiau nurodytas turinys negali būti naudojamas komerciniais ar neteisėtais tikslais, priešingu atveju vartotojai prisiima visas pasekmes. Šioje svetainėje pateikiama informacija gaunama iš interneto, o ginčai dėl autorių teisių neturi nieko bendra su šia svetaine. Turite visiškai ištrinti aukščiau pateiktą turinį iš savo kompiuterio per 24 valandas nuo atsisiuntimo. Jei jums patinka programa, palaikykite autentišką programinę įrangą, įsigykite registraciją ir gaukite geresnes autentiškas paslaugas. Jei yra kokių nors pažeidimų, susisiekite su mumis el. paštu.

Mail To:help@itsvse.com