zoukankan      html  css  js  c++  java
  • 簡化SQL Insert、Update、Delete、Select的方法

    在過去開發過程中,我一直對數據庫的操作需要寫重復的insert update delete select函數感到很討厭,所以我之前寫了一些簡化的方法,現重新整理一下給大家分享

    ,希望對大家有所幫助,代碼如下:

     

    //對數據庫的所有操作只是調用Oper或Select兩個函數就可以了,只是構造不同的class和sql

                      private string insertsql = "insert .....";

                private string updatesql = "update .....";

                private string deletesql = "delete .....";

                private string selectsql = "select .....";

                public class SampleClass   //定義實體類,變量名和sql裡的輸入變量名對應

                {

                    private Int32 _AttKey = -1;

                    private String _EqStyle = "";

                    //。。。。。。。。。。更多類成員

                    public Int32 AttKey

                    {

                        get{ }

                        set{ }

                    }

                    //。。。。。。。。。。。。。。

                }

                private System.Data.SqlClient.SqlParameter[] GetParameters(System.Object obj)   //構造SqlParameter對象函數

                {

                    System.Reflection.PropertyInfo[] properties = obj.GetType().GetProperties();

                    System.Data.SqlClient.SqlParameter[] theParameters = new System.Data.SqlClient.SqlParameter[properties.Length];

                    int i = 0;

                    foreach (System.Reflection.PropertyInfo property in properties)

                    {

                        theParameters[i] = new System.Data.SqlClient.SqlParameter("@" + property.Name,Convert.ChangeType(property.GetValue(obj, null),property.GetType()));

                        i = i + 1;

                    }

                    return theParameters;

                }

     

     

                public Song.Model.ExecuteResultEnum Oper(System.Object obj, string sqlstr)  //執行操作函數

                {

                    try

                    {

                        SqlParameter[] theParameters = new SqlParameter[] { new SqlParameter() };

                        theParameters = GetParameters(obj);

                        SQLServerHelper.ExecuteNonQuery(sqlstr, theParameters);

                        return ExecuteResultEnum.Succeed;

                    }

                    catch

                    {

                        return ExecuteResultEnum.Failed;

                    }

                }

               public System.Collections.ArrayList Select<T>(System.Object obj, string sqlstr) //執行select函數

                {

                    try

                    {

                        SqlParameter[] theParameters = new SqlParameter[] { new SqlParameter() };

                        theParameters = GetParameters(obj);

                        System.Collections.ArrayList arr=SQLServerHelper.ExecuteSelect(sqlstr, theParameters);

                        return arr;

                    }

                    catch

                    {

                        return null;

                    }

                }

                private void oop()//調用

                {

                    SampleClass sc = new SampleClass();

                    sc.AttKey = 1;

                    sc.EqStyle = "ww";

                    Song.Model.ExecuteResultEnum eResult = Oper(sc, insertsql);

                    Song.Model.ExecuteResultEnum eResult = Oper(sc, updatesql);

                    Song.Model.ExecuteResultEnum eResult = Oper(sc, deletesql);

                    System.Collections.ArrayList arr = Select<SampleClass>(sc, selectsql);

     

                }

  • 相关阅读:
    android Service Activity三种交互方式(付源码)
    Android优化
    Android 开发性能优化之SparseArray(三)
    Android 开发性能优化之SparseArray(二)
    ListView封装实现下拉刷新和上拉加载(方式2)(转载)
    Android——谷歌官方下拉刷新控件SwipeRefreshLayout(转)
    Android 6.0
    Android AppCompatActivity去掉actionbar fullScreen
    决心
    Translucent System Bar 的最佳实践
  • 原文地址:https://www.cnblogs.com/guyuehuanhuan/p/2142019.html
Copyright © 2011-2022 走看看