91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 3KB
    文件類(lèi)型: .rar
    金幣: 2
    下載: 1 次
    發(fā)布日期: 2021-05-07
  • 語(yǔ)言: C#
  • 標(biāo)簽: c#??反射??sql??

資源簡(jiǎn)介

利用反射動(dòng)態(tài)拼接sql。 daohelper屬于DAL層,objectdata類(lèi)屬于BLL層,BLL層引用DAL層。映射數(shù)據(jù)的表繼承objectdata類(lèi)。例如,數(shù)據(jù)表book,根據(jù)字段與屬性一一對(duì)應(yīng)的方式創(chuàng)建book類(lèi),插入數(shù)據(jù)庫(kù)時(shí),直接book.save()

資源截圖

代碼片段和文件信息

using?System;
using?System.Collections.Generic;
using?System.Linq;
using?System.Text;
using?System.Reflection;
using?System.Data.SqlClient;
using?System.Configuration;
using?System.Data;
using?System.Data.SqlTypes;

namespace?Dal
{
????/*
?????*?操作數(shù)據(jù)庫(kù)的方法
?????*?約定:
?????*?1)對(duì)象屬性必須有public?string?TableName
?????*?2)屬性名與字段名一樣。
?????*?3)主鍵屬性需標(biāo)記自定義特性KeyFlagAttribute,表示此屬性是數(shù)據(jù)表中的主鍵
?????*?4)數(shù)據(jù)表中每個(gè)表必須設(shè)有主鍵
?????*/
????public?class?DAOHelp
????{
????????#region?屬性
????????///?
????????///?數(shù)據(jù)庫(kù)連接字符串
????????///?add?cjk?2013-12-20
????????///?

????????private?static?string?connectionString?=?ConfigurationManager.ConnectionStrings[“mydataConnectionString“].ToString();
????????#endregion


????????#region?數(shù)據(jù)庫(kù)增、刪、改、查
????????///?
????????///?數(shù)據(jù)庫(kù)的插入或更新的方法
????????///?add?cjk?2013-12-20
????????///?

????????///?要存入數(shù)據(jù)庫(kù)的對(duì)象
????????public?static?int?Save(object?obj)
????????{
????????????int?n?=?0;
????????????using?(SqlConnection?conn?=?new?SqlConnection(connectionString))
????????????{
????????????????conn.Open();
????????????????StringBuilder?sql?=?new?StringBuilder();
????????????????StringBuilder?sqlend?=?new?StringBuilder();
????????????????//獲取對(duì)象的屬性數(shù)組
????????????????PropertyInfo[]?pro?=?obj.GetType().GetProperties();
????????????????//主鍵屬性數(shù)組
????????????????List?idlist?=?GetIdProperty(pro);
????????????????//要更新的數(shù)據(jù)表
????????????????string?table?=?FindPropertyInfoValue(obj?“TableName“).ToString();
????????????????//執(zhí)行的sql語(yǔ)句
????????????????string?sqltext?=?string.Empty;
????????????????//INSERT?INTO?table_name?(列1?列2...)?VALUES?(值1?值2....)
????????????????sql.Append(“INSERT?INTO?“?+?table?+?“(“);
????????????????sqlend.Append(“?VALUES?(“);

????????????????foreach?(PropertyInfo?item?in?pro)
????????????????{//拼接sql語(yǔ)句主體
????????????????????if?(item.Name?==?“TableName“)
????????????????????{
????????????????????????continue;
????????????????????}
????????????????????else
????????????????????{
????????????????????????string?columnValue?=?item.GetValue(obj?null)?+?““;
????????????????????????if?(string.IsNullOrEmpty(columnValue))
????????????????????????{//去掉空屬性
????????????????????????????continue;
????????????????????????}
????????????????????????if?(item.PropertyType?==?typeof(DateTime))
????????????????????????{//時(shí)間屬性初始化時(shí)未賦值會(huì)變?yōu)槟J(rèn)最小值
????????????????????????????DateTime?dt;
????????????????????????????DateTime.TryParse(columnValue?out?dt);
????????????????????????????if?(dt?<=?SqlDateTime.MinValue.Value)
????????????????????????????????continue;
????????????????????????}
????????????????????????sql.Append(“?“?+?item.Name?+?““);
????????????????????????sqlend.Append(“?‘“?+?columnValue?+?“‘“);
????????????????????}
????????????????}
????????????????string?start?=?sql.ToString();
????????????????start?=?start.Substring(0?start.Length?-?1)?+?“)“;
????????????????string?end?=?sqlend.ToString();
??

?屬性????????????大小?????日期????時(shí)間???名稱(chēng)
-----------?---------??----------?-----??----

?????文件???????1426??2013-12-21?14:56??objectData.cs

?????文件??????12297??2013-12-21?15:27??DAOHelp.cs

-----------?---------??----------?-----??----

????????????????13723????????????????????2


評(píng)論

共有 條評(píng)論