Bu makale makine çevirisi ayna makalesidir, orijinal makaleye geçmek için lütfen buraya tıklayın.

Görünüm: 41320|Yanıt: 12

[ASP.NET] [DBHelp], nesneleri Listelere kapsüllemek için yansıma teknolojisi kullanır

[Bağlantıyı kopyala]
Yayınlandı 20.04.2015 14:52:57 | | | |
Bu gönderi en son 2015-4-21 16:09 tarihinde Delver_Si tarafından düzenlenmiştir

Bana hangi tür varlık verildiği ve hangi tür varlık koleksiyonu döner?

  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.         }
Kopya kodu

Tüm 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. }
Kopya kodu



Puan

Katılımcı sayısı1MB+1 Katkı+1 Çökmek sebep
Küçük + 1 + 1 Çok güçlü!

Tüm puanları gör





Önceki:Ruijie okul ağı istikrarsız ve sık sık düşüyor, bir çözümüm var!
Önümüzdeki:Japonya ultra yüksek hızlı kameralar geliştiriyor
 Ev sahibi| Yayınlandı 20.04.2015 15:56:40 |
Xiao Zhazha 2015-4-20 15:36 tarihinde gönderildi
Bunu gece deneyeceğim, bir örnek olsa daha iyi olurdu

Örnekler var
 Ev sahibi| Yayınlandı 20.04.2015 15:56:38 |
Xiao Zhazha 2015-4-20 15:36 tarihinde gönderildi
Bunu gece deneyeceğim, bir örnek olsa daha iyi olurdu

Örnekler var
Yayınlandı 1.08.2015 15:57:53 |
Eklenmiş bir DBHelp işlem yürütme kodu vardır

Yayınlandı 20.04.2015 15:36:14 |
Bunu gece deneyeceğim, bir örnek olsa daha iyi olurdu
 Ev sahibi| Yayınlandı 21.04.2015 16:10:01 |
güncellendi
Yayınlandı 21.04.2015 16:50:50 |
Sıkıştırılmış bir paket örneğini yükleyebilir misiniz?
 Ev sahibi| Yayınlandı 21.04.2015 21:06:48 |
kaynak

ManualAssign.rar

180.66 KB, İndirme süreleri: 6, İndirme kredileri: -1 prestij, -1 katkı

 Ev sahibi| Yayınlandı 21.04.2015 21:07:00 |
Xiao Zhazha 2015-4-21 16:50 tarihinde yayınlandı
Sıkıştırılmış bir paket örneğini yükleyebilir misiniz?

gönderildi
Yayınlandı 22.04.2015 08:31:39 |
Yayınlandı 22.04.2015 10:51:19 |
Feragatname:
Code Farmer Network tarafından yayımlanan tüm yazılım, programlama materyalleri veya makaleler yalnızca öğrenme ve araştırma amaçları içindir; Yukarıdaki içerik ticari veya yasa dışı amaçlarla kullanılamaz, aksi takdirde kullanıcılar tüm sonuçları ödemelidir. Bu sitedeki bilgiler internetten alınmakta olup, telif hakkı anlaşmazlıklarının bu siteyle hiçbir ilgisi yoktur. Yukarıdaki içeriği indirmeden sonraki 24 saat içinde bilgisayarınızdan tamamen silmelisiniz. Programı beğendiyseniz, lütfen orijinal yazılımı destekleyin, kayıt satın alın ve daha iyi orijinal hizmetler alın. Herhangi bir ihlal olursa, lütfen bizimle e-posta yoluyla iletişime geçin.

Mail To:help@itsvse.com