Example #1
0
        public bool Fill <T>(T model) where T : class
        {
            ModelInfo mi = GetModelInfo <T>();

            string format     = "select * from {0} where {1}";
            object fieldValue = ModelProperty <T> .GetValue(model as T, mi.IDFieldName);

            CheckIDField <T>(model, mi, fieldValue);

            List <MySqlParameter> list = new List <MySqlParameter> {
                new MySqlParameter("@" + mi.IDFieldName, fieldValue)
            };

            format = string.Format(format, mi.TableName, mi.IDFieldName + "=@" + mi.IDFieldName);

            using (MySqlDataReader reader = MySqlHandler.ExecuteReader(mi.Conn, format, list.ToArray()))
            {
                while (reader.Read())
                {
                    foreach (PropertyInfo info in model.GetType().GetProperties())
                    {
                        object propertyValue;
                        if (DBNull.Value != reader[info.Name])
                        {
                            propertyValue = reader[info.Name];
                            ModelProperty <T> .SetValue(model as T, info.Name, propertyValue);
                        }
                    }

                    return(true); // Only return the first data
                }
            }

            return(false);
        }