亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

MySQL通過實(shí)例化對(duì)象參數(shù)查詢實(shí)例講解

 更新時(shí)間:2018年10月16日 14:38:07   投稿:laozhang  
在本篇文章里我們給大家分享了關(guān)于MySQL如何通過實(shí)例化對(duì)象參數(shù)查詢數(shù)據(jù)的相關(guān)知識(shí)點(diǎn)內(nèi)容,有需要的朋友們可以測試參考下。

本篇文章給大家?guī)淼膬?nèi)容是關(guān)于MySQL如何通過實(shí)例化對(duì)象參數(shù)查詢數(shù)據(jù) ?(源代碼),有一定的參考價(jià)值,有需要的朋友可以參考一下,希望對(duì)你有所幫助。

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ù),對(duì)屬性賦值,將對(duì)象作為參數(shù)傳入,反射獲取對(duì)象名稱,列名,列值。要求對(duì)象名與表名一致,屬性與列名一致,感謝大家對(duì)腳本之家的支持。

相關(guān)文章

  • CentOS Linux更改MySQL數(shù)據(jù)庫目錄位置具體操作

    CentOS Linux更改MySQL數(shù)據(jù)庫目錄位置具體操作

    由于MySQL的數(shù)據(jù)庫太大,默認(rèn)安裝的/var盤已經(jīng)再也無法容納新增加的數(shù)據(jù),沒有辦法,只能想辦法轉(zhuǎn)移數(shù)據(jù)的目錄,本文整理了一些MySQL從/var/lib/mysql目錄下面轉(zhuǎn)移到/home/mysql_data/mysql目錄的具體操作,感興趣的你可不要走開啊
    2013-01-01
  • MySQL深分頁問題原理與三種解決方案

    MySQL深分頁問題原理與三種解決方案

    本文主要介紹了MySql深分頁問題原理與解決方案,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-05-05
  • CentOS6.5下RPM方式安裝mysql5.6.33的詳細(xì)教程

    CentOS6.5下RPM方式安裝mysql5.6.33的詳細(xì)教程

    本文給大家詳細(xì)介紹CentOS6.5下RPM方式安裝mysql5.6.33的教程,本文分步驟給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友一起看看吧
    2016-10-10
  • 理解MySQL查詢優(yōu)化處理過程

    理解MySQL查詢優(yōu)化處理過程

    MySQL查詢優(yōu)化需要經(jīng)過解析、預(yù)處理和優(yōu)化三個(gè)步驟。在這些過程中,都有可能發(fā)生錯(cuò)誤。本篇文章不會(huì)深入討論錯(cuò)誤處理,而是幫助理解 MySQL 執(zhí)行查詢的方式,以便可以寫出更好的查詢語句。
    2021-05-05
  • clickhouse復(fù)雜時(shí)間格式的轉(zhuǎn)換方式

    clickhouse復(fù)雜時(shí)間格式的轉(zhuǎn)換方式

    這篇文章主要介紹了clickhouse復(fù)雜時(shí)間格式的轉(zhuǎn)換方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-12-12
  • mysql 8.0.12 winx64下載安裝教程

    mysql 8.0.12 winx64下載安裝教程

    這篇文章主要為大家詳細(xì)介紹了mysql 8.0.12 winx64下載安裝教程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-09-09
  • mysql 如何動(dòng)態(tài)修改復(fù)制過濾器

    mysql 如何動(dòng)態(tài)修改復(fù)制過濾器

    這篇文章主要介紹了mysql 如何動(dòng)態(tài)修改復(fù)制過濾器,幫助大家更好的理解和使用MySQL,感興趣的朋友可以了解下
    2020-11-11
  • MySQL表操作插入數(shù)據(jù)insert語句學(xué)習(xí)(小白入門篇)

    MySQL表操作插入數(shù)據(jù)insert語句學(xué)習(xí)(小白入門篇)

    這篇文章主要為大家介紹了MySQL表操作插入數(shù)據(jù)insert語句學(xué)習(xí)小白入門篇,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-05-05
  • mysql技巧之select count的區(qū)別分析

    mysql技巧之select count的區(qū)別分析

    在工作過程中,時(shí)不時(shí)會(huì)有開發(fā)咨詢幾種select count()的區(qū)別,我總會(huì)告訴他們使用select count(*) 就好。下文我會(huì)展示幾種sql的執(zhí)行計(jì)劃來說明為啥是這樣。
    2013-08-08
  • iOS開發(fā)runloop運(yùn)行循環(huán)機(jī)制學(xué)習(xí)

    iOS開發(fā)runloop運(yùn)行循環(huán)機(jī)制學(xué)習(xí)

    這篇文章主要為大家介紹了iOS開發(fā)runloop運(yùn)行循環(huán)的機(jī)制學(xué)習(xí),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-07-07

最新評(píng)論