Αυτό το άρθρο είναι ένα άρθρο καθρέφτη της αυτόματης μετάφρασης, κάντε κλικ εδώ για να μεταβείτε στο αρχικό άρθρο.

Άποψη: 41320|Απάντηση: 12

[ASP.NET] Το [DBHelp] χρησιμοποιεί τεχνολογία ανάκλασης για να ενθυλακώσει αντικείμενα σε λίστες

[Αντιγραφή συνδέσμου]
Δημοσιεύτηκε στις 20/4/2015 2:52:57 μ.μ. | | | |
Αυτό το άρθρο τροποποιήθηκε τελευταία φορά από Delver_Si στις 2015-4-21 16:09

Τι είδους οντότητα μου δίνεται και τι είδους συλλογή οντοτήτων επιστρέφεται

  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.         }
Αντιγραφή κώδικα

Όλη η 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. }
Αντιγραφή κώδικα



Παρτιτούρα

Αριθμός συμμετεχόντων1ΜΒ+1 συνεισφέρω+1 Κατάρρευση λόγος
Μικρά αποβράσματα + 1 + 1 Πολύ δυνατό!

Δείτε όλες τις αξιολογήσεις





Προηγούμενος:Το σχολικό δίκτυο Ruijie είναι ασταθές και συχνά πέφτει, έχω λύση!
Επόμενος:Η Ιαπωνία αναπτύσσει κάμερες εξαιρετικά υψηλής ταχύτητας
 Σπιτονοικοκύρης| Δημοσιεύτηκε στις 20/4/2015 3:56:40 μ.μ. |
Xiao Zhazha Δημοσιεύτηκε στις 2015-4-20 15:36
Θα το δοκιμάσω το βράδυ, θα ήταν καλύτερα να υπήρχε ένα παράδειγμα

Υπάρχουν παραδείγματα
 Σπιτονοικοκύρης| Δημοσιεύτηκε στις 20/4/2015 3:56:38 μ.μ. |
Xiao Zhazha Δημοσιεύτηκε στις 2015-4-20 15:36
Θα το δοκιμάσω το βράδυ, θα ήταν καλύτερα να υπήρχε ένα παράδειγμα

Υπάρχουν παραδείγματα
Δημοσιεύτηκε στις 1/8/2015 3:57:53 μ.μ. |
Επισυνάπτεται ένας κωδικός εκτέλεσης συναλλαγής DBHelp

Δημοσιεύτηκε στις 20/4/2015 3:36:14 μ.μ. |
Θα το δοκιμάσω το βράδυ, θα ήταν καλύτερα να υπήρχε ένα παράδειγμα
 Σπιτονοικοκύρης| Δημοσιεύτηκε στις 21/4/2015 4:10:01 μ.μ. |
ΕΠΙΚΑΙΡΟΠΟΙΗΜΕΝΟ
Δημοσιεύτηκε στις 21/4/2015 4:50:50 μ.μ. |
Μπορείτε να ανεβάσετε ένα παράδειγμα συμπιεσμένου πακέτου;
 Σπιτονοικοκύρης| Δημοσιεύτηκε στις 21/4/2015 9:06:48 μ.μ. |
πηγή

ManualAssign.rar

180.66 KB, Χρόνοι λήψης: 6, Πηγές λήψης: -1 κύρος, -1 συνεισφορά

 Σπιτονοικοκύρης| Δημοσιεύτηκε στις 21/4/2015 9:07:00 μ.μ. |
Xiao Zhazha Δημοσιεύτηκε στις 2015-4-21 16:50
Μπορείτε να ανεβάσετε ένα παράδειγμα συμπιεσμένου πακέτου;

Στάλθηκε
Δημοσιεύτηκε στις 22/4/2015 8:31:39 π.μ. |

Εντάξει, θα ρίξω μια ματιά
Δημοσιεύτηκε στις 22/4/2015 10:51:19 π.μ. |

Πάρτε το και πείτε ευχαριστώ
Αποκήρυξη:
Όλο το λογισμικό, το υλικό προγραμματισμού ή τα άρθρα που δημοσιεύονται από το Code Farmer Network προορίζονται μόνο για μαθησιακούς και ερευνητικούς σκοπούς. Το παραπάνω περιεχόμενο δεν θα χρησιμοποιηθεί για εμπορικούς ή παράνομους σκοπούς, άλλως οι χρήστες θα υποστούν όλες τις συνέπειες. Οι πληροφορίες σε αυτόν τον ιστότοπο προέρχονται από το Διαδίκτυο και οι διαφορές πνευματικών δικαιωμάτων δεν έχουν καμία σχέση με αυτόν τον ιστότοπο. Πρέπει να διαγράψετε εντελώς το παραπάνω περιεχόμενο από τον υπολογιστή σας εντός 24 ωρών από τη λήψη. Εάν σας αρέσει το πρόγραμμα, υποστηρίξτε γνήσιο λογισμικό, αγοράστε εγγραφή και λάβετε καλύτερες γνήσιες υπηρεσίες. Εάν υπάρχει οποιαδήποτε παραβίαση, επικοινωνήστε μαζί μας μέσω email.

Mail To:help@itsvse.com