リフレクションDBHelper

システムを使用しました。
System.Collections.Genericを使用しました。
System.Linqのを使用しました。
System.Textのを使用しました。
System.Threading.Tasksを使用しました。
モデルを用いました。
System.IOを使用しました。
するSystem.Reflectionを使用しました。
System.ComponentModel.DataAnnotationsを使用しました。

DAL名前空間
{
    publicクラスのDBhelp
    {
        公共の文字列の追加<T>(リストT){
            //取得任意のクラス型
            のvar T1 = typeof演算(T);
            //属性の型を取得
            PropertyInfo [] PRP = t1.GetPropertiesを( );
            //追加SQLスプライシング
            文字列strが= + t1.name + "値" INSERT INTO"(";
            //宣言変数
            のint i = 0;
            //ループを介して属性
            のforeach(PRPの項目PropertyInfo)を
            {
                I ++;
                //主キーを分析して、空でない
                (item.GetCustomAttribute(typeof演算(trueにKeyAttribute))== NULL)すると
                {
                    // iは、アレイのサイズプラス端SQLの長さ)又はスプライシングフィールドに等しい場合
                    IF(I == prp.Length)
                    {
                        STR + = " '" + item.GetValue(リスト)+ "')";
                    }
                    他の
                    {
                        STR + = " '" + item.GetValue(一覧)+ "'、";
                    }
                }             }             SQLを返す//             戻りSTRを;         }         削除//         パブリック文字列デル<T>(モデルT、int型のID)        {             VAR typeof演算= T1(T);             PropertyInfo [] PRP = t1.GetProperties()。            文字列str = "";
              










            foreachの(項目VARにおけるPRP)
            {
                STR + =(+ t1.name + "WHERE" + item.name + "=" "から削除")+ ID;
                BREAK;
            }
            戻りSTR;
        }
        パブリック文字列<T>(TルックSTU)
        {
            VARタイプは= typeof演算(T);
            // StringBuilderの作成
            文字列STRを= + type.name "SELECT * FROM";
            //データテーブルにクエリを受信する
            リターンSTR;
        }
        パブリック文字列の編集<T>(モデルT、 IDのINT)
        {
            //現在のエンティティを取得
            するvar TT = typeof演算(T)は、
            //プロパティを取得
            PropertyInfo [] = propertyInfos tt.GetProperties();
            //新しい動的ストリング
            列STR = "";
            STR + = "更新" tt.Name + + "SET";
            I = 0をint型;
            //ループ要素の
            foreachの(VARアイテムのpropertyInfos)
            {
                私は++; //現在の要素の数から外れてしまった
                のIF(item.GetCustomAttribute(typeof演算(KeyAttribute)trueに、)== NULL)
                {
                    //これが最後の要素である場合
                    (I == propertyInfos.Length場合)
                    {
                        STR + = item.name + "= '" + item.GetValue(モデル)+ "'"。
                    }
                    他
                    {
                        STR + = item.Name + "= '" + item.GetValue(モデル)+ "'"。
                    }
                }
            }
            //循环输出
            foreachの(propertyInfosにおけるVARアイテム)
            {
                STR + = "" + item.Name + "=" + ID。
                ブレーク;
            }
            STRを返します。
        }
    }
}

おすすめ

転載: www.cnblogs.com/lrzb/p/11800046.html