最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

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

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)文章

最新評論

建宁县| 错那县| 日喀则市| 卓尼县| 庄浪县| 绵阳市| 黄龙县| 信宜市| 西盟| 阿拉尔市| 天全县| 大城县| 洛宁县| 黔西| 织金县| 马公市| 广丰县| 怀集县| 台北县| 莎车县| 黄骅市| 徐州市| 渝中区| 阿鲁科尔沁旗| 哈巴河县| 道真| 乡宁县| 界首市| 罗江县| 江西省| 库伦旗| 理塘县| 阳新县| 比如县| 方正县| 新龙县| 墨江| 阿瓦提县| 宁国市| 观塘区| 桃园县|