Тази статия е огледална статия за машинен превод, моля, кликнете тук, за да преминете към оригиналната статия.

Изглед: 41320|Отговор: 12

[ASP.NET] [DBHelp] използва технология за отражение, за да капсулира обекти в списъци

[Копирай линк]
Публикувано в 20.04.2015 г. 14:52:57 ч. | | | |
Тази публикация беше последно редактирана от Delver_Si на 21.04.2015 г., 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. }
Копирай код



Резултат

Брой участници1MB+1 допринасям+1 Срив причина
Малък боклук + 1 + 1 Много мощно!

Вижте всички оценки





Предишен:Мрежата на училището в Руйджие е нестабилна и често прекъсва, имам решение!
Следващ:Япония разработва ултра-високоскоростни камери
 Хазяин| Публикувано в 20.04.2015 г. 15:56:40 ч. |
Xiao Zhazha Публикувано на 2015-4-20 15:36
Ще пробвам това вечер, по-добре би било да има пример

Има примери
 Хазяин| Публикувано в 20.04.2015 г. 15:56:38 ч. |
Xiao Zhazha Публикувано на 2015-4-20 15:36
Ще пробвам това вечер, по-добре би било да има пример

Има примери
Публикувано в 1.08.2015 г. 15:57:53 ч. |
Прикачено е код за изпълнение на транзакция на DBHelp

Публикувано в 20.04.2015 г. 15:36:14 ч. |
Ще пробвам това вечер, по-добре би било да има пример
 Хазяин| Публикувано в 21.04.2015 г. 16:10:01 ч. |
Актуализирано
Публикувано в 21.04.2015 г. 16:50:50 ч. |
Можеш ли да качиш пример за компресиран пакет?
 Хазяин| Публикувано в 21.04.2015 г. 21:06:48 ч. |
източник

ManualAssign.rar

180.66 KB, Време за изтегляне: 6, Кредити за изтегляне: -1 престиж, -1 принос

 Хазяин| Публикувано в 21.04.2015 г. 21:07:00 ч. |
Xiao Zhazha Публикувано на 21.04.2015 16:50
Можеш ли да качиш пример за компресиран пакет?

изпратено
Публикувано в 22.04.2015 г. 8:31:39 ч. |

Добре, ще погледна
Публикувано в 22.04.2015 г. 10:51:19 ч. |

Вземи го и кажи благодаря
Отричане:
Целият софтуер, програмни материали или статии, публикувани от Code Farmer Network, са само за учебни и изследователски цели; Горното съдържание не трябва да се използва за търговски или незаконни цели, в противен случай потребителите ще понесат всички последствия. Информацията на този сайт идва от интернет, а споровете за авторски права нямат нищо общо с този сайт. Трябва напълно да изтриете горното съдържание от компютъра си в рамките на 24 часа след изтеглянето. Ако ви харесва програмата, моля, подкрепете оригинален софтуер, купете регистрация и получете по-добри услуги. Ако има нарушение, моля, свържете се с нас по имейл.

Mail To:help@itsvse.com