Este artículo es un artículo espejo de traducción automática, por favor haga clic aquí para saltar al artículo original.

Vista: 41320|Respuesta: 12

[ASP.NET] [DBHelp] utiliza tecnología de reflexión para encapsular objetos en Listas

[Copiar enlace]
Publicado en 20/4/2015 14:52:57 | | | |
Esta publicación fue editada por última vez por Delver_Si el 21-4-2015 a las 16:09

Qué tipo de entidad se me asigna y qué tipo de colección de entidades se devuelve

  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.         }
Copiar código

Todo el 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. }
Copiar código



Puntuación

Número de participantes1MB+1 contribuir+1 Colapso razón
Pequeña basura + 1 + 1 ¡Muy poderoso!

Ver todas las valoraciones





Anterior:La red de colegios de Ruijie es inestable y a menudo se cae, ¡tengo una solución!
Próximo:Japón desarrolla cámaras de ultra alta velocidad
 Propietario| Publicado en 20/4/2015 15:56:40 |
Xiao Zhazha Publicado el 20-4-2015 15:36
Lo probaré por la noche, sería mejor si hubiera un ejemplo

Hay ejemplos
 Propietario| Publicado en 20/4/2015 15:56:38 |
Xiao Zhazha Publicado el 20-4-2015 15:36
Lo probaré por la noche, sería mejor si hubiera un ejemplo

Hay ejemplos
Publicado en 1/8/2015 15:57:53 |
Adjunto está un código de ejecución de transacción DBHelp

Publicado en 20/4/2015 15:36:14 |
Lo probaré por la noche, sería mejor si hubiera un ejemplo
 Propietario| Publicado en 21/4/2015 16:10:01 |
Actualizado
Publicado en 21/4/2015 16:50:50 |
¿Se puede subir un ejemplo de un paquete comprimido?
 Propietario| Publicado en 21/4/2015 21:06:48 |
fuente

ManualAssign.rar

180,66 KB, Tiempos de descarga: 6, Créditos de descarga: -1 prestigio, -1 contribución

 Propietario| Publicado en 21/4/2015 21:07:00 |
Xiao Zhazha Publicado el 21-4-2015 16:50
¿Se puede subir un ejemplo de un paquete comprimido?

enviado
Publicado en 22/4/2015 8:31:39 |

Vale, le echaré un vistazo
Publicado en 22/4/2015 10:51:19 |

Llévatelo y di gracias
Renuncia:
Todo el software, materiales de programación o artículos publicados por Code Farmer Network son únicamente para fines de aprendizaje e investigación; El contenido anterior no se utilizará con fines comerciales o ilegales; de lo contrario, los usuarios asumirán todas las consecuencias. La información de este sitio proviene de Internet, y las disputas de derechos de autor no tienen nada que ver con este sitio. Debes eliminar completamente el contenido anterior de tu ordenador en un plazo de 24 horas desde la descarga. Si te gusta el programa, por favor apoya el software genuino, compra el registro y obtén mejores servicios genuinos. Si hay alguna infracción, por favor contáctanos por correo electrónico.

Mail To:help@itsvse.com