Ця стаття є дзеркальною статтею машинного перекладу, будь ласка, натисніть тут, щоб перейти до оригінальної статті.

Вид: 41320|Відповідь: 12

[ASP.NET] [DBHelp] використовує технологію відображення для інкапсуляції об'єктів у списки

[Копіювати посилання]
Опубліковано 20.04.2015 14: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 Дуже потужно!

Переглянути всі рейтинги





Попередній:Мережа шкіл Руйцзе нестабільна і часто зривається, у мене є рішення!
Наступний:Японія розробляє ультрависокошвидкісні камери
 Орендодавець| Опубліковано 20.04.2015 15:56:40 |
Сяо Чжажа Опубліковано 2015-4-20 15:36
Спробую це вночі, було б краще, якби був приклад

Є приклади
 Орендодавець| Опубліковано 20.04.2015 15:56:38 |
Сяо Чжажа Опубліковано 2015-4-20 15:36
Спробую це вночі, було б краще, якби був приклад

Є приклади
Опубліковано 01.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 КБ, час завантаження: 6, кредити за завантаження: -1 престиж, -1 внесок

 Орендодавець| Опубліковано 21.04.2015 21:07:00 |
Сяо Чжажа Опубліковано 2015-4-21 16:50
Чи можете ви завантажити приклад стисненого пакета?

відправлено
Опубліковано 22.04.2015 08:31:39 |

Добре, я подивлюся
Опубліковано 22.04.2015 10:51:19 |

Забери це і скажи «дякую»
Застереження:
Усе програмне забезпечення, програмні матеріали або статті, опубліковані Code Farmer Network, призначені лише для навчання та досліджень; Вищезазначений контент не повинен використовуватися в комерційних чи незаконних цілях, інакше користувачі несуть усі наслідки. Інформація на цьому сайті надходить з Інтернету, і спори щодо авторських прав не мають до цього сайту. Ви повинні повністю видалити вищезазначений контент зі свого комп'ютера протягом 24 годин після завантаження. Якщо вам подобається програма, будь ласка, підтримуйте справжнє програмне забезпечення, купуйте реєстрацію та отримайте кращі справжні послуги. Якщо є будь-яке порушення, будь ласка, зв'яжіться з нами електронною поштою.

Mail To:help@itsvse.com