Denna artikel är en spegelartikel om maskinöversättning, klicka här för att hoppa till originalartikeln.

Utsikt: 41320|Svar: 12

[ASP.NET] [DBHelp] använder reflektionsteknologi för att kapsla in objekt i listor

[Kopiera länk]
Publicerad på 2015-04-20 14:52:57 | | | |
Detta inlägg redigerades senast av Delver_Si den 21 april 2015 kl. 16:09

Vilken typ av enhet ges till mig, och vilken typ av enhetssamling returneras

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

Hela 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. }
Kopiera koden



Tjog

Antal deltagare1MB+1 bidra+1 Kollaps förnuft
Lilla avskum + 1 + 1 Mycket kraftfullt!

Se alla betyg





Föregående:Ruijie-skolans nätverk är instabilt och tappar ofta, jag har en lösning!
Nästa:Japan utvecklar ultrahöghastighetskameror
 Hyresvärd| Publicerad på 2015-04-20 15:56:40 |
Xiao Zhazha Publicerad den 2015-4-20 15:36
Jag ska prova detta på kvällen, det vore bättre om det fanns ett exempel

Det finns exempel
 Hyresvärd| Publicerad på 2015-04-20 15:56:38 |
Xiao Zhazha Publicerad den 2015-4-20 15:36
Jag ska prova detta på kvällen, det vore bättre om det fanns ett exempel

Det finns exempel
Publicerad på 2015-08-01 15:57:53 |
Bifogad är en DBHelp-transaktionsexekveringskod

Publicerad på 2015-04-20 15:36:14 |
Jag ska prova detta på kvällen, det vore bättre om det fanns ett exempel
 Hyresvärd| Publicerad på 2015-04-21 16:10:01 |
uppdaterad
Publicerad på 2015-04-21 16:50:50 |
Kan du ladda upp ett exempel på ett komprimerat paket?
 Hyresvärd| Publicerad på 2015-04-21 21:06:48 |
källa

ManualAssign.rar

180,66 KB, Nedladdningstider: 6, Nedladdningskrediter: -1 prestige, -1 bidrag

 Hyresvärd| Publicerad på 2015-04-21 21:07:00 |
Xiao Zhazha Publicerad den 2015-4-21 16:50
Kan du ladda upp ett exempel på ett komprimerat paket?

Skickat
Publicerad på 2015-04-22 08:31:39 |

Okej, jag ska titta
Publicerad på 2015-04-22 10:51:19 |

Ta bort den och säg tack
Friskrivning:
All programvara, programmeringsmaterial eller artiklar som publiceras av Code Farmer Network är endast för lärande- och forskningsändamål; Ovanstående innehåll får inte användas för kommersiella eller olagliga ändamål, annars kommer användarna att bära alla konsekvenser. Informationen på denna sida kommer från internet, och upphovsrättstvister har inget med denna sida att göra. Du måste helt radera ovanstående innehåll från din dator inom 24 timmar efter nedladdning. Om du gillar programmet, vänligen stöd äkta programvara, köp registrering och få bättre äkta tjänster. Om det finns något intrång, vänligen kontakta oss via e-post.

Mail To:help@itsvse.com