MySQL通過實例化對象參數(shù)如何查詢數(shù)據(jù)

下文主要給大家?guī)鞰ySQL通過實例化對象參數(shù)如何查詢數(shù)據(jù) ,希望這些內(nèi)容能夠帶給大家實際用處,這也是我編輯MySQL通過實例化對象參數(shù)如何查詢數(shù)據(jù) 這篇文章的主要目的。好了,廢話不多說,大家直接看下文吧。                                                          

創(chuàng)新互聯(lián)公司10年專注成都高端網(wǎng)站建設(shè)按需定制服務(wù),為客戶提供專業(yè)的成都網(wǎng)站制作,成都網(wǎng)頁設(shè)計,成都網(wǎng)站設(shè)計服務(wù);創(chuàng)新互聯(lián)公司服務(wù)內(nèi)容包含成都網(wǎng)站建設(shè),微信小程序開發(fā),軟件開發(fā),網(wǎng)絡(luò)營銷推廣,網(wǎng)絡(luò)運營服務(wù)及企業(yè)形象設(shè)計;創(chuàng)新互聯(lián)公司擁有眾多專業(yè)的高端網(wǎng)站制作開發(fā)團隊,資深的高端網(wǎng)頁設(shè)計團隊及經(jīng)驗豐富的架構(gòu)師高端網(wǎng)站策劃團隊;我們始終堅持從客戶的角度出發(fā),為客戶量身訂造網(wǎng)絡(luò)營銷方案,解決網(wǎng)絡(luò)營銷疑問。

public static string QueryByEntity<T>(T t) where T : new()
{    string resultstr = string.Empty;
    MySqlDataReader reader = null;    try
    {
        Type type = typeof(T);
        PropertyInfo[] properties = type.GetProperties();        string select = string.Format("Select * from {0} {1}", type.Name, "{0}");        string where = string.Empty;        foreach (PropertyInfo property in properties)
        {            var value = t.GetPropertyValue<T>(property);            if (value != null && !value.Equals(property.GetDefaultValue()))
            {                if (string.IsNullOrEmpty(where))
                {                    where = string.Format(" where {0}='{1}' ", property.Name, value);
                }                else
                {                    where = string.Format(" {0} and {1} = '{2}' ", where, property.Name, value);
                }
            }
        }        select = string.Format(select, where);

        MySqlConnection connection = OpenConnection();        if (connection == null)            return resultstr;
        MySqlCommand _sqlCom = new MySqlCommand(select, connection);
        reader = _sqlCom.ExecuteReader();
        List<T> tList = new List<T>();        while (reader.Read())
        {
            T t1 = new T();            foreach (PropertyInfo property in properties)
            {                if (!string.IsNullOrEmpty(reader[property.Name].ToString()))
                {
                    property.SetMethod.Invoke(t1, new object[] { reader[property.Name] });
                }
            }
            tList.Add(t1);
        }
        resultstr = JsonConvert.SerializeObject(tList);
    }    catch (Exception ex)
    {
        Logging.Error(string.Format("查詢數(shù)據(jù)庫失敗,{0}", ex.Message));
    }    finally
    {        if (reader != null)
        {
            reader.Close();
            reader.Dispose();
        }
    }    return resultstr;
}internal static class ObjectExtend
{    public static object GetPropertyValue<T>(this object obj, PropertyInfo property)
    {
        Type type = typeof(T);
        PropertyInfo propertyInfo = type.GetProperty(property.Name);        if (propertyInfo != null)
        {            return propertyInfo.GetMethod.Invoke(obj, null);
        }        return null;
    }    public static object GetDefaultValue(this PropertyInfo property)
    {        return property.PropertyType.IsValueType ? Activator.CreateInstance(property.PropertyType) : null;
    }
}

通過實例化參數(shù),對屬性賦值,將對象作為參數(shù)傳入,反射獲取對象名稱,列名,列值。要求對象名與表名一致,屬性與列名一致。

對于以上關(guān)于MySQL通過實例化對象參數(shù)如何查詢數(shù)據(jù) ,大家是不是覺得非常有幫助。如果需要了解更多內(nèi)容,請繼續(xù)關(guān)注我們的行業(yè)資訊,相信你會喜歡上這些內(nèi)容的。

當前題目:MySQL通過實例化對象參數(shù)如何查詢數(shù)據(jù)
網(wǎng)頁網(wǎng)址:http://bm7419.com/article16/phodgg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供動態(tài)網(wǎng)站域名注冊、標簽優(yōu)化企業(yè)建站、云服務(wù)器、定制開發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都app開發(fā)公司